Hướng dẫn can we run python file in browser? - chúng ta có thể chạy tệp python trong trình duyệt không?

Pyscript cho phép bạn chạy các tập lệnh Python ngay trong trình duyệt, cạnh nhau với JavaScript, với tương tác hai chiều giữa mã của bạn và trang web.

Nhà văn cao cấp, Infoworld |InfoWorld |

Hướng dẫn can we run python file in browser? - chúng ta có thể chạy tệp python trong trình duyệt không?
dtosh / shutterstock

Mục lục

Cho xem nhiều hơn

Pyscript, được tạo ra bởi Anaconda, là một công nghệ mới thử nghiệm nhưng đầy hứa hẹn làm cho thời gian chạy Python có sẵn như một ngôn ngữ kịch bản trong các trình duyệt hỗ trợ WebAssEbling.

Mỗi trình duyệt hiện đại, thường được sử dụng giờ đây hỗ trợ WebAssugging, tiêu chuẩn thời gian chạy tốc độ cao mà nhiều ngôn ngữ (như C, C ++ và Rust) có thể biên dịch. Việc triển khai tham chiếu của Python được viết bằng C và một dự án trước đó, Pyodide, đã cung cấp một cổng webassugging của thời gian chạy Python.

Mặc dù vậy, Pyscript nhằm mục đích cung cấp toàn bộ môi trường trong trình duyệt để chạy Python như một ngôn ngữ kịch bản web. Nó được xây dựng trên đầu pyodide nhưng thêm hoặc tăng cường các tính năng như khả năng nhập các mô-đun từ thư viện tiêu chuẩn, sử dụng nhập của bên thứ ba, định cấu hình tương tác hai chiều với mô hình đối tượng tài liệu (DOM) và làm nhiều việc khác trong cả hai Thế giới Python và JavaScript.

Ngay bây giờ, Pyscript vẫn là một dự án nguyên mẫu và thử nghiệm. Anaconda không khuyên bạn nên sử dụng nó trong sản xuất. Nhưng người dùng tò mò có thể thử các ví dụ trên trang Pyscript và sử dụng các thành phần có sẵn để xây dựng các ứng dụng Python-Plus-JavaScript thử nghiệm trong trình duyệt.

Trong bài viết này, chúng tôi sẽ tham quan những điều cơ bản của Pyscript và xem cách nó cho phép Python và JavaScript tương tác.

Lập trình với pyscript

Tại cốt lõi của nó, Pyscript bao gồm một JavaScript duy nhất bao gồm bạn có thể thêm vào một trang web. Điều này bao gồm tải thời gian chạy pyscript cơ sở và tự động thêm hỗ trợ cho các thẻ tùy chỉnh được sử dụng trong pyscript.

Dưới đây là một ví dụ đơn giản về dự án "Xin chào, Thế giới" trong Pyscript:




    
        
        
    
    


print("Hello world")


Thẻ script trong head của tài liệu tải chức năng pyscript cốt lõi. Bảng kiểu pyscript.css là tùy chọn, nhưng hữu ích. Trong số những thứ khác, nó chèn các thông báo cho người dùng vào thời gian tải của trang về những gì trang đang thực hiện, tải xuống thời gian chạy Python, khởi tạo, v.v.

Mã Python được đính kèm trong thẻ py-script tùy chỉnh. Lưu ý rằng mã phải được định dạng theo các quy ước của Python để thụt vào hoặc nó sẽ không chạy đúng. Hãy nhận biết điều này nếu bạn sử dụng một biên tập viên mà các nhà cải cách HTML tự động; Nó có thể xử lý các nội dung của khối py-script và làm cho nó không thể giải thích được.

Bất kỳ mã Python nào được đánh giá sau khi các thành phần Pyscript hoàn thành tải. Nếu tập lệnh trong các thẻ ghi vào câu lệnh


import datetime
print ("Current date and time:",
datetime.datetime.now().strftime("%Y/%m/%d %H:%M:%S"))
0 (như với

import datetime
print ("Current date and time:",
datetime.datetime.now().strftime("%Y/%m/%d %H:%M:%S"))
1), bạn có thể trực tiếp ở đâu trên trang để hiển thị đầu ra bằng cách cung cấp thuộc tính

import datetime
print ("Current date and time:",
datetime.datetime.now().strftime("%Y/%m/%d %H:%M:%S"))
2. Trong ví dụ này,

import datetime
print ("Current date and time:",
datetime.datetime.now().strftime("%Y/%m/%d %H:%M:%S"))
0 cho tập lệnh được hướng vào

import datetime
print ("Current date and time:",
datetime.datetime.now().strftime("%Y/%m/%d %H:%M:%S"))
4 với ID

import datetime
print ("Current date and time:",
datetime.datetime.now().strftime("%Y/%m/%d %H:%M:%S"))
5.

Nếu bạn lưu điều này vào một tệp và mở nó trong trình duyệt web, trước tiên bạn sẽ thấy chỉ báo "tải" và tạm dừng, vì trình duyệt sẽ có thời gian chạy Pyscript và thiết lập nó. Thời gian chạy nên được lưu trong bộ nhớ cache trong các tải trọng trong tương lai nhưng vẫn sẽ mất một chút thời gian để kích hoạt. Sau đó,


import datetime
print ("Current date and time:",
datetime.datetime.now().strftime("%Y/%m/%d %H:%M:%S"))
6 sẽ xuất hiện trên trang.

Nhập khẩu thư viện tiêu chuẩn

Các tập lệnh sử dụng các bản dựng của Python chỉ có phần hữu ích. Thư viện tiêu chuẩn của Python có sẵn trong Pyscript giống như cách bạn sử dụng nó trong Python thông thường: chỉ đơn giản là


import datetime
print ("Current date and time:",
datetime.datetime.now().strftime("%Y/%m/%d %H:%M:%S"))
7 và đi làm. Nhập khẩu thư viện tiêu chuẩn chỉ nên làm việc trong pyscript.

Nếu bạn muốn sửa đổi khối tập lệnh trên để hiển thị thời gian hiện tại, bạn sẽ không cần phải làm điều đó khác với Python thông thường:


import datetime
print ("Current date and time:",
datetime.datetime.now().strftime("%Y/%m/%d %H:%M:%S"))

Sử dụng thư viện từ Pypi

Điều gì sẽ xảy ra nếu chúng ta muốn cài đặt một gói từ Pypi và sử dụng nó? Pyscript có một thẻ khác,


import datetime
print ("Current date and time:",
datetime.datetime.now().strftime("%Y/%m/%d %H:%M:%S"))
8, chỉ định các gói của bên thứ ba cần được cài đặt. Hãy thay thế khối py-script trong tập lệnh gốc bằng hai khối sau:



- humanize



from datetime import datetime
import humanize
now_int = int(datetime.timestamp(datetime.now()))
now_fmt = humanize.intcomma(now_int)
print("It has been", now_fmt, "seconds since the epoch.")

Khối


import datetime
print ("Current date and time:",
datetime.datetime.now().strftime("%Y/%m/%d %H:%M:%S"))
8 cho phép chúng tôi liệt kê các gói để thêm, giống như cách chúng tôi có thể liệt kê chúng trong tệp


- humanize



from datetime import datetime
import humanize
now_int = int(datetime.timestamp(datetime.now()))
now_fmt = humanize.intcomma(now_int)
print("It has been", now_fmt, "seconds since the epoch.")

1 cho dự án Python. Sau đó, chúng tôi có thể nhập và sử dụng chúng như bất kỳ gói Python nào khác. Trong ví dụ này, chúng tôi đang sử dụng gói bên thứ ba có tên


- humanize



from datetime import datetime
import humanize
now_int = int(datetime.timestamp(datetime.now()))
now_fmt = humanize.intcomma(now_int)
print("It has been", now_fmt, "seconds since the epoch.")

2 để làm cho đầu ra số dễ đọc hơn.

Lưu ý rằng không phải tất cả các gói từ PYPI sẽ cài đặt và chạy như mong đợi. Chẳng hạn,



- humanize



from datetime import datetime
import humanize
now_int = int(datetime.timestamp(datetime.now()))
now_fmt = humanize.intcomma(now_int)
print("It has been", now_fmt, "seconds since the epoch.")

3 yêu cầu truy cập vào các thành phần mạng chưa được hỗ trợ. . Và các gói được sử dụng trong các ví dụ được cung cấp bởi Anaconda, như


- humanize



from datetime import datetime
import humanize
now_int = int(datetime.timestamp(datetime.now()))
now_fmt = humanize.intcomma(now_int)
print("It has been", now_fmt, "seconds since the epoch.")

6,


- humanize



from datetime import datetime
import humanize
now_int = int(datetime.timestamp(datetime.now()))
now_fmt = humanize.intcomma(now_int)
print("It has been", now_fmt, "seconds since the epoch.")

7,


- humanize



from datetime import datetime
import humanize
now_int = int(datetime.timestamp(datetime.now()))
now_fmt = humanize.intcomma(now_int)
print("It has been", now_fmt, "seconds since the epoch.")

8 hoặc


- humanize



from datetime import datetime
import humanize
now_int = int(datetime.timestamp(datetime.now()))
now_fmt = humanize.intcomma(now_int)
print("It has been", now_fmt, "seconds since the epoch.")

9, cũng sẽ hoạt động.

Nhập khẩu địa phương

Đối với một kịch bản phổ biến khác, giả sử bạn muốn nhập từ các tập lệnh Python khác trong cùng một cây thư mục với trang web của bạn. Sử dụng nhập khẩu giúp di chuyển nhiều logic Python của bạn ra khỏi trang web dễ dàng hơn, nơi nó kết hợp với bài thuyết trình của bạn và có thể trở nên khó khăn để làm việc.

Thông thường, Python sử dụng sự hiện diện của các tệp




  
    
    
  

  
    

pyscript REPL

Tip: press Shift-ENTER to evaluate a cell
0 khác trong hệ thống tệp làm chỉ dẫn cho những gì nó có thể nhập. Pyscript không thể hoạt động theo cách này, vì vậy bạn sẽ cần chỉ định các tệp bạn muốn cung cấp dưới dạng các mô -đun có thể nhập.

Giả sử bạn có một trang web có tên




  
    
    
  

  
    

pyscript REPL

Tip: press Shift-ENTER to evaluate a cell
1 trong một thư mục nhất định trên máy chủ web của bạn và bạn muốn đặt một tệp python có tên



  
    
    
  

  
    

pyscript REPL

Tip: press Shift-ENTER to evaluate a cell
2 bên cạnh nó. Bằng cách này, tập lệnh trong trang của bạn có thể chỉ là



  
    
    
  

  
    

pyscript REPL

Tip: press Shift-ENTER to evaluate a cell
3 và bạn có thể giới hạn phần lớn logic Python vào các tệp



  
    
    
  

  
    

pyscript REPL

Tip: press Shift-ENTER to evaluate a cell
0 thực tế.

Chỉ định các tệp Python bạn muốn nhập có thể nhập trong khối


import datetime
print ("Current date and time:",
datetime.datetime.now().strftime("%Y/%m/%d %H:%M:%S"))
8 của mình:




  
    
    
  

  
    

pyscript REPL

Tip: press Shift-ENTER to evaluate a cell
6



  
    
    
  

  
    

pyscript REPL

Tip: press Shift-ENTER to evaluate a cell
7

Điều này sẽ cho phép




  
    
    
  

  
    

pyscript REPL

Tip: press Shift-ENTER to evaluate a cell
2, trong cùng một thư mục máy chủ web với chính trang web, được nhập với



  
    
    
  

  
    

pyscript REPL

Tip: press Shift-ENTER to evaluate a cell
3.

Một điều quan trọng cần ghi nhớ: Bạn không thể thực hiện nhập khẩu như thế này trên trang web bạn đã khởi chạy cục bộ trong trình duyệt. Điều này là do các hạn chế đối với truy cập hệ thống tệp được áp đặt bởi thời gian chạy WebAssugging và chính trình duyệt. Thay vào đó, bạn cần phải lưu trữ các trang trên máy chủ web để phục vụ trang web và tệp




  
    
    
  

  
    

pyscript REPL

Tip: press Shift-ENTER to evaluate a cell
0.

Thẻ repress

Người dùng Python phải làm quen với Jupyter Notebook, môi trường mã hóa trực tiếp trong trình duyệt cho Python thường được sử dụng cho toán học và thống kê. Pyscript cung cấp một khối xây dựng nguyên thủy cho môi trường như vậy, thẻ





from js import document, console
from pyodide import create_proxy

def _eventlog(e):
    console.log(f"Input value: {e.target.value}")

eventlog = create_proxy(_eventlog)

document.getElementById("txt").addEventListener("input", eventlog)

1.





from js import document, console
from pyodide import create_proxy

def _eventlog(e):
    console.log(f"Input value: {e.target.value}")

eventlog = create_proxy(_eventlog)

document.getElementById("txt").addEventListener("input", eventlog)

1 tạo ra một trường đầu vào trên một trang web có chức năng giống như một phiên bản rất cơ bản của môi trường Notebook Jupyter. Đây là một ví dụ từ các bản demo của chính Anaconda:




  
    
    
  

  
    

pyscript REPL

Tip: press Shift-ENTER to evaluate a cell

Chạy mã này và bạn sẽ được trình bày với một trường đầu vào, hoạt động giống như Python REPLE.

Hiện tại, thẻ repress có rất ít trong cách tùy chỉnh tài liệu. Chẳng hạn, nếu bạn muốn lập trình truy cập nội dung của một ô hoặc kết quả của nó, không có tài liệu rõ ràng nào về cách làm điều đó.

Hướng dẫn can we run python file in browser? - chúng ta có thể chạy tệp python trong trình duyệt không?
Idg

Thành phần thay thế giống như Jupyter của Pyscript cho phép bạn chạy Python tương tác trong một trang, mặc dù nó chưa linh hoạt hoặc có thể cấu hình được.

Tương tác với người nghe sự kiện JavaScript

Bởi vì Pyscript dựa trên





from js import document, console
from pyodide import create_proxy

def _eventlog(e):
    console.log(f"Input value: {e.target.value}")

eventlog = create_proxy(_eventlog)

document.getElementById("txt").addEventListener("input", eventlog)

3, nó sử dụng các cơ chế của ____ 43 để tương tác với DOM. Chẳng hạn, nếu chúng tôi muốn nhận giá trị của hộp đầu vào trên trang web và sử dụng nó trong mã Python của chúng tôi, chúng tôi sẽ làm điều này:





from js import document, console
from pyodide import create_proxy

def _eventlog(e):
    console.log(f"Input value: {e.target.value}")

eventlog = create_proxy(_eventlog)

document.getElementById("txt").addEventListener("input", eventlog)

Thư viện





from js import document, console
from pyodide import create_proxy

def _eventlog(e):
    console.log(f"Input value: {e.target.value}")

eventlog = create_proxy(_eventlog)

document.getElementById("txt").addEventListener("input", eventlog)

5 cung cấp giao diện Python cho nhiều thực thể JavaScript thông thường, như các đối tượng




from js import document, console
from pyodide import create_proxy

def _eventlog(e):
    console.log(f"Input value: {e.target.value}")

eventlog = create_proxy(_eventlog)

document.getElementById("txt").addEventListener("input", eventlog)

6 và




from js import document, console
from pyodide import create_proxy

def _eventlog(e):
    console.log(f"Input value: {e.target.value}")

eventlog = create_proxy(_eventlog)

document.getElementById("txt").addEventListener("input", eventlog)

7. Họ hành xử gần như chính xác theo cùng một cách trong pyscript như họ làm trong JavaScript. Hàm




from js import document, console
from pyodide import create_proxy

def _eventlog(e):
    console.log(f"Input value: {e.target.value}")

eventlog = create_proxy(_eventlog)

document.getElementById("txt").addEventListener("input", eventlog)

8 trong




from js import document, console
from pyodide import create_proxy

def _eventlog(e):
    console.log(f"Input value: {e.target.value}")

eventlog = create_proxy(_eventlog)

document.getElementById("txt").addEventListener("input", eventlog)

3 cho phép chúng tôi lấy một đối tượng chức năng Python và tạo giao diện JavaScript cho nó, vì vậy nó có thể được sử dụng làm trình nghe sự kiện cho hộp script0. Bất kỳ tổ hợp phím nào trong hộp script0 đều được ghi vào bảng điều khiển, nhưng chúng cũng có thể được xử lý ở phía Python.

Serdar Yegulalp là một nhà văn cao cấp tại Infoworld, tập trung vào học máy, container hóa, devops, hệ sinh thái Python và đánh giá định kỳ.

Bản quyền © 2022 IDG Communications, Inc.

Làm cách nào để chạy một tệp python trong trình duyệt của tôi?

Pyscript cho phép bạn chạy các tập lệnh Python ngay trong trình duyệt, cạnh nhau với JavaScript, với tương tác hai chiều giữa mã của bạn và trang web ...
Lập trình với pyscript ..
Nhập khẩu thư viện tiêu chuẩn ..
Sử dụng thư viện từ Pypi ..
Nhập khẩu địa phương ..
Thẻ repress ..
Tương tác với người nghe sự kiện JavaScript ..

Chúng ta có thể chạy mã python trong trình duyệt không?

Brython vừa là trình biên dịch Python vừa là người phiên dịch được viết bằng JavaScript.Do đó, bạn có thể biên dịch và chạy mã Python trong trình duyệt.Một ví dụ điển hình về tính năng này được trình bày bởi biên tập viên trực tuyến có sẵn trên trang web Brython.Với biên tập viên trực tuyến, Python đang chạy trong trình duyệt.you can compile and run Python code in the browser. A good example of this feature is demonstrated by the online editor available on the Brython website. With the online editor, Python is running in the browser.

Làm cách nào để chạy một tập tin python trong chrome?

Sử dụng liên kết để tải xuống tiện ích mở rộng - Python Shell Chrome.Khi bạn đã cài đặt tiện ích mở rộng Python Shell, hãy tiến hành khởi chạy nó từ Trình quản lý tiện ích mở rộng.Bạn sẽ thấy một cửa sổ nhỏ bật lên trên trình duyệt của bạn, nơi bạn có thể thực hiện mã Python của mình.

Bạn có thể chạy một kịch bản Python trong HTML không?

Dự án Pyscript mới cho phép bạn nhúng các chương trình Python trực tiếp vào các trang HTML và thực hiện chúng trong trình duyệt mà không có bất kỳ yêu cầu dựa trên máy chủ nào..