Chuyển đổi cython thành python
Bảo vệ các nguồn Python của bạn khỏi những trình đọc không mong muốn thì nói dễ hơn làm, bởi vì. mã byte pyc có thể giải mã được và quá trình mã hóa dễ dàng được thiết kế ngược. Tôi đã mất một lúc để tìm ra cách thích hợp để ẩn mã Python… Làm quen với Cython, một trình biên dịch tĩnh tối ưu hóa lấy các mô-đun Việc cài đặt dễ dàng như gõ Thêm tập lệnh sau vào thư mục dự án của bạn (như from distutils.core import setup Tập lệnh phải liệt kê rõ ràng các tệp mà bạn muốn biên dịch. Bạn cũng có thể để lại một số tệp chưa được biên dịch, nếu bạn muốn. Những thứ đó vẫn sẽ duy trì khả năng Tạo tệp Python điểm đầu vào cho ứng dụng của bạn. Bạn sẽ nhập và khởi chạy tất cả logic đã biên dịch từ đó. Cần có một tệp điểm đầu vào vì Cython không tạo các tệp nhị phân thực thi theo mặc định (mặc dù nó có khả năng), vì vậy bạn sẽ cần một tệp Python giả, nơi bạn chỉ cần nhập tất cả logic đã biên dịch và chạy nó. Nó có thể đơn giản như from logic import main # this comes from a compiled binary 4. Chạy biên dịch. pyTùy thuộc vào phiên bản Python bạn sử dụng, hãy chạy python compile.py build_ext --inplace …hoặc, cho Python 3 python3 compile.py build_ext --inplace Lệnh trên sẽ tạo các tệp from logic import main # this comes from a compiled binary 0 bên cạnh tệp nguồn .py của bạnTệp from logic import main # this comes from a compiled binary 0 là nguồn trung gian được sử dụng để tạo tệp .so , là mô-đun nhị phân mà bạn muốn phân phối. Khi xây dựng trên Windows, các tệp này có thể sẽ có phần mở rộng from logic import main # this comes from a compiled binary 4 (CẬP NHẬT. trong các nhận xét, mọi người gợi ý rằng họ thực sự có tiện ích mở rộng from logic import main # this comes from a compiled binary 5 trên Windows)Bạn có thể xóa các tệp from logic import main # this comes from a compiled binary 0 và .py sau khi tạo thành công và chỉ giữ lại các tệp .so Lưu ý rằng các tệp python compile.py build_ext --inplace 0 trên MacOS của tôi). Rõ ràng, các mô-đun được biên dịch không đa nền tảng. Nếu bạn phân phối chương trình của mình cho người dùng Ubuntu Linux, bạn nên biên dịch nó trên Linux. Nếu không, bạn sẽ không thể tải các tệp nhị phân này. Vì vậy, bạn sẽ phải biên dịch một phiên bản mã dành riêng cho nền tảng cho từng nền tảng được nhắm mục tiêu của mìnhMay mắn thay, có những công cụ như Vagrant có thể giúp giảm tất cả gánh nặng cài đặt hệ điều hành xuống chỉ bằng một vài lệnh đơn giản… Thiết lập môi trường hệ điều hành khác bằng VirtualBox và VagrantĐây là một ví dụ về cách tôi quản lý để biên dịch dự án của mình trên Ubuntu 16. 04, trong khi sử dụng MacOS
Cuối cùng, chạy python compile.py build_ext --inplace 3 để vào bảng điều khiển Ubuntu mới cài đặt (nhập python compile.py build_ext --inplace 4 để thoát)python compile.py build_ext --inplace 5 vào thư mục python compile.py build_ext --inplace 6 để xem tệp dự án của bạn. Sau đó thực hiện các bước 1, 4 từ sách hướng dẫn này và bạn đã hoàn tấtĐối với các dự án có chu kỳ xây dựng/phát hành ngắn, các bản dựng đa nền tảng có thể được tự động hóa bằng cách sử dụng dịch vụ CI (Tích hợp liên tục), như Travis CI, nhưng đó là câu chuyện dành cho một bài viết khác |