2010-11-16 42 views
9

thể trùng lặp:
Distributing Python programsChương Trình Phân phối Được viết bằng Python

Tôi có một số mã nguồn cho một số chương trình GUI tôi thực hiện trong Python. Tôi muốn phân phối chúng. Tuy nhiên, tôi muốn làm cho nó dễ dàng nhất có thể cho người dùng cuối để có được chương trình và chạy. Cách phổ biến của việc đi về vấn đề này là gì?

Đây là tham chiếu đến Windows XP và bật.

+0

http://stackoverflow.com/questions/1558385/how-can-i-distribute-python-programs?lq=1 – pmav99

Trả lời

20

Tất cả các bản phân phối Linux đáng chú ý và Mac OS đến vận chuyển với một số phiên bản của Python. Windows không cài đặt Python theo mặc định, vì vậy bạn phải cài đặt nó một cách riêng biệt để chạy một mô-đun Python. Tất nhiên phiên bản Python đã cài đặt phải giống như chương trình của bạn (phiên bản 2 hoặc 3). Cách đơn giản nhất để phân phối chương trình của bạn là phân phối mã nguồn (ví dụ: gửi mô-đun của bạn qua email hoặc tải lên ở đâu đó) nhưng trong trường hợp đó, máy tính đích phải cài đặt của Python đáp ứng các phụ thuộc. Một giải pháp tốt hơn nữa (ít nhất là cho cộng đồng) là tải lên chương trình của bạn dưới dạng gói hàng trên PyPi. Bạn có thể tìm thêm thông tin cho quy trình đó HERE.

Trong một số trường hợp, có những lý do khiến bạn không thể sử dụng các tùy chọn này. Ví dụ bạn không thể cài đặt python và/hoặc các phụ thuộc (không có tài khoản root/admin). Nếu đúng như vậy, bạn có thể gộp (các) mô-đun của mình cùng với mọi thứ khác cần thiết để chạy chương trình của bạn (ví dụ: python * .dll trên cửa sổ). những người như xa như tôi biết các tùy chọn cơ bản cho các loại hình phân phối như sau:

  1. py2exe
  2. py2app (chỉ dành cho Mac OS)
  3. PyInstaller
  4. cx_Freeze
  5. bbFreeze
  6. vendorID
  7. freeze
  8. nuitka --standalone
  9. cython --embed

Một giao diện đồ họa đối với hầu hết những công cụ này (tôi nghĩ chỉ cho các cửa sổ) là gui2exe (trừ đóng băng).

cách tiếp cận khác sẽ được sử dụng Portable Python hoặc trong trường hợp của Linux/BSD StaticPython

Lưu ý: Không phải tất cả các công cụ nói trên chạy trên tất cả các nền tảng hoặc/và hỗ trợ Python3. Kiểm tra tài liệu của họ.

CẬP NHẬT

Một module khá intresting cũng là Esky, mà hứa hẹn sẽ tự động cập nhật ứng dụng bị đóng băng. Bạn có thể tìm thấy video giới thiệu HERE

4

Bạn muốn py2exe, là phần mở rộng của gói distutils.

http://www.py2exe.org/

+7

py2exe là phần mở rộng của đường dẫn. Nó không phải là một phần của gói distutils, nằm trong thư viện chuẩn của Python. – Velociraptors

+2

Sử dụng py2exe về cơ bản sẽ đóng gói trình biên dịch Python và mã python vào một exe với các thư viện bổ sung (hoặc không có tệp bổ sung nếu được sử dụng với các cờ thích hợp). Sau đó, bạn có thể sử dụng một cái gì đó như Innosetup http://www.jrsoftware.org/isinfo.php để đóng gói các tệp cần thiết thành một 'trình cài đặt tự' sẽ giúp phân phối dễ dàng hơn cho những người không phải là công nghệ cao – g19fanatic

+0

[đây là phiên bản đã nhận xét] (http://aegis.codepad.org/DnSzcjW6) của kịch bản cài đặt py2exe mà tôi đã sử dụng trong một vài dự án - nó tạo một tệp exe đơn và có một vài tùy chọn tốt đẹp. cũng [kiểm tra upx] (http://upx.sourceforge.net/) để nén kết quả thực thi – lunixbochs

Các vấn đề liên quan