Cách chạy mã python trong chrome
Tôi là nhà nghiên cứu và phát triển web tự do đến từ Malawi. Tôi thích học những điều mới và việc viết lách giúp tôi hiểu và củng cố các khái niệm. Tôi hy vọng bằng cách chia sẻ kinh nghiệm của mình, những người khác có thể học được điều gì đó từ họ
PyScript cho phép bạn chạy các tập lệnh Python ngay trong trình duyệt, song song với JavaScript, với sự tương tác hai chiều giữa mã của bạn và trang web Show
Nhà văn cao cấp, InfoWorld. Mục lục Cho xem nhiều hơn PyScript, được tạo bởi Anaconda, là một công nghệ mới thử nghiệm nhưng đầy hứa hẹn giúp thời gian chạy Python có sẵn dưới dạng ngôn ngữ kịch bản trong các trình duyệt hỗ trợ WebAssembly Mọi trình duyệt hiện đại, thông dụng hiện nay đều 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 thành. 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 [ Cũng trên InfoWorld. Sự trỗi dậy của WebAssembly ]Tuy nhiên, PyScript nhằm mục đích cung cấp toàn bộ môi trường trong trình duyệt để chạy Python dưới dạng ngôn ngữ kịch bản web. Nó được xây dựng dựa trên Pyodide nhưng bổ sung hoặc nâng cao các tính năng như khả năng nhập mô-đun từ thư viện chuẩn, sử dụng tính nă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à thực hiện nhiều thứ hữu ích khác trong cả hai Ngay bây giờ, PyScript vẫn là một dự án thử nghiệm và nguyên mẫu. Anaconda không khuyên bạn nên sử dụng nó trong sản xuất. Nhưng 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 ta sẽ tìm hiểu những kiến thức cơ bản về PyScript và xem cách nó cho phép Python và JavaScript tương tác Lập trình với PyScriptVề cốt lõi, PyScript bao gồm một mã JavaScript duy nhất 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 Đây là một ví dụ đơn giản về dự án "xin chào, thế giới" trong PyScript
Thẻ Mã Python được đặt trong thẻ Bất kỳ mã Python nào cũng được đánh giá sau khi các thành phần PyScript tải xong. Nếu tập lệnh trong các thẻ ghi vào câu lệnh 0 (như với câu lệnh 1), bạn có thể chỉ dẫn vị trí trên trang để hiển thị đầu ra bằng cách cung cấp thuộc tính 2. Trong ví dụ này, 0 cho tập lệnh được chuyển hướng đến 4 với ID 5Nếu bạn lưu tệp 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 "đang tải" và tạm dừng, vì trình duyệt lấy thời gian chạy PyScript và thiết lập nó. Thời gian chạy sẽ vẫn được lưu vào bộ nhớ cache trong các lần tải trong tương lai nhưng vẫn sẽ mất một chút thời gian để kích hoạt. Sau đó, 6 sẽ xuất hiện trên trangNhập thư viện tiêu chuẩnCác tập lệnh chỉ sử dụng nội trang của Python chỉ hữu ích một chút. Thư viện 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ỉ cần 7 và bắt đầu làm việc. Nhập thư viện tiêu chuẩn chỉ hoạt động trong PyScriptNế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 không cần thực hiện điều đó khác với cách bạn làm trong Python thông thường
Sử dụng thư viện từ PyPINếu chúng ta muốn cài đặt một gói từ PyPI và sử dụng gói đó thì sao? . Hãy thay thế khối
Khối 8 cho phép chúng tôi liệt kê các gói cần thêm, giống như cách chúng tôi có thể liệt kê chúng trong tệp 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 của bên thứ ba có tên là 2 để làm cho đầu ra số dễ đọc hơnLư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, 3 yêu cầu quyền truy cập vào các thành phần mạng chưa được hỗ trợ. (Một giải pháp khả thi cho vấn đề này là sử dụng 4, được hỗ trợ nguyên bản. ) Nhưng các gói thuần Python, như 2, sẽ chạy tốt. Và các gói được sử dụng trong các ví dụ do Anaconda cung cấp, như 6, 7, 8 hoặc 9, cũng sẽ hoạt độngNhập khẩu tại địa phươngĐối với một tình huống 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 cây thư mục với trang web của mình. Sử dụng tính năng nhập giúp dễ dàng di chuyển nhiều logic Python của bạn ra khỏi trang web, nơi nó được trộn lẫn với bản trình bày của bạn và có thể trở nên khó làm việc với Thông thường, Python sử dụng sự hiện diện của các tệp 0 khác trong hệ thống tệp làm dấu hiệu cho thấy 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 tệp nào bạn muốn cung cấp dưới dạng mô-đun có thể nhậpGiả sử bạn có một trang web có tên 1 trong một thư mục nhất định trên máy chủ web của mình và bạn muốn đặt một tệp Python có tên 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à 3 và bạn có thể giới hạn phần lớn logic Python trong các tệp 0 thực tếChỉ định các tệp Python mà bạn muốn có thể nhập được trong khối 8 của mình 6_______22_______7Điều này sẽ cho phép 2, trong cùng thư mục máy chủ web với chính trang web, có thể nhập được với 3Một điều quan trọng cần ghi nhớ. Bạn không thể thực hiện nhập như thế này trên trang web mà 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 quyền 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 lưu trữ các trang trên máy chủ web để phục vụ trang web và tệp 0[ Cũng trên InfoWorld. 4 chìa khóa để viết Python hiện đại vào năm 2022 ]Thẻ REPLNgười dùng Python phải quen thuộc với Jupyter Notebook, môi trường mã hóa trực tiếp trong trình duyệt dành 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ột môi trường như vậy, thẻ 1 1 tạo trường nhập liệu trên 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 Máy tính xách tay Jupyter. Đây là một ví dụ từ bản demo của Anaconda
Chạy mã này và bạn sẽ thấy một trường nhập liệu, hoạt động giống như REPL của Python Hiện tại, thẻ REPL có rất ít cách thức tùy chỉnh tài liệu. Chẳng hạn, nếu bạn muốn truy cập nội dung của một ô hoặc kết quả của ô đó theo chương trình, thì không có tài liệu rõ ràng nào về cách thực hiện điều đó Thành phần REPL giống như Jupyter của PyScript cho phép bạn chạy Python một cách tương tác trong một trang, mặc dù nó chưa linh hoạt hoặc có thể định cấu hình Tương tác với trình xử lý sự kiện JavaScriptBởi vì PyScript dựa trên 3, nên nó sử dụng cơ chế của 3 để tương tác với DOM. Ví dụ: nếu chúng tôi muốn lấy giá trị của hộp nhập liệu trên trang web và sử dụng nó trong mã Python của mình, chúng tôi sẽ làm điều này
Thư viện 5 cung cấp giao diện Python cho nhiều thực thể JavaScript phổ biến, như các đối tượng 6 và 7. Chúng hoạt động gần như chính xác theo cùng một cách trong PyScript cũng như trong JavaScript. Hàm 8 trong 3 cho phép chúng ta lấy một đối tượng hàm Python và tạo giao diện JavaScript cho nó, vì vậy nó có thể được sử dụng làm trình lắng nghe sự kiện cho hộp script 0. Bất kỳ lần nhấn phím nào trong hộp script 0 đều được ghi vào bảng điều khiển, nhưng chúng cũng có thể được xử lý ở phía PythonCó liên quan
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ỳ Có thể chạy Python trong trình duyệt không?"Pyodide cho phép cài đặt và chạy các gói Python trong trình duyệt bằng micropip. Bất kỳ gói Python thuần túy nào có bánh xe có sẵn trên PyPI đều được hỗ trợ," dự án Pyodide nêu rõ. Về cơ bản, nó biên dịch mã Python và các thư viện khoa học thành WebAssugging bằng Emscripten
Chúng tôi có thể sử dụng Python trong tiện ích mở rộng của Chrome không?Thêm Python vào tiện ích mở rộng của Chrome
. Phương pháp A. Bao gồm Brython trong iframe (yêu cầu máy chủ) Phương pháp B. Biên dịch Python sang Javascript bằng Rapydscript (tiện ích mở rộng tốt nhất, không có máy chủ, thuần túy. )We have two options to add Python into a chrome extension: Method A: Include Brython in an iframe (requires server) Method B: Compile Python to Javascript using Rapydscript (best, serverless, pure extension.) |