2008-09-20 40 views
48

Tôi cần phải đóng gói ứng dụng python của tôi, phụ thuộc của nó và python vào một trình cài đặt MSI đơn. Kết quả cuối cùng nên khều là:Làm thế nào để đóng gói một ứng dụng Python bao gồm các phụ thuộc?

  • Python được cài đặt ở vị trí tiêu chuẩn
  • gói và phụ thuộc của nó được cài đặt trong một thư mục riêng biệt (có thể là trang web gói)
  • thư mục cài đặt nên chứa python không nén và thực thi độc lập không được yêu cầu
+0

http://stackoverflow.com/questions/2933/how-can-i-create-a-directly-executable-cross-platform-gui-app-using-python – nbro

Trả lời

25

Loại câu hỏi này về số how to make a python into an executable.

Nó nắm tới:

py2exe trên cửa sổ, Freeze trên Linux, và py2app trên Mac.

+2

Không thực sự là một dup. Điều này đặc trưng cho bao bì. Tên kia vẫn chưa có đầu mối.Nhưng tuyệt, đó là thông tin về py2exe –

1

py2exe là cách tốt nhất để thực hiện việc này. Đó là một chút của một PITA để sử dụng, nhưng kết quả cuối cùng hoạt động rất tốt.

1

py2exe sẽ làm cho cửa sổ thực thi với python kèm trong.

16

tôi sử dụng PyInstaller (phiên bản svn) để tạo ra một phiên bản độc lập của chương trình của tôi bao gồm Python và tất cả các phụ thuộc. Phải mất một chút không quan trọng để có được nó để làm việc đúng và bao gồm tất cả mọi thứ (cũng như py2exe và các chương trình tương tự khác, xem this question), nhưng sau đó nó hoạt động rất tốt.

Sau đó, bạn cần phải tạo trình cài đặt. NSIS Hoạt động tuyệt vời cho điều đó và hoàn toàn miễn phí, nhưng nó tạo ra các tệp .exe không .msi. Nếu .msi là không cần thiết, tôi khuyên bạn nên sử dụng nó. Nếu không, hãy xem câu trả lời cho câu hỏi this cho các tùy chọn khác.

4

Công ty của tôi sử dụng công cụ InnoSetup miễn phí. Đây là một chương trình phức tạp vừa phải có khả năng linh hoạt để xây dựng trình cài đặt cho các cửa sổ. Tôi tin rằng nó tạo ra .exe và không .msi tập tin, tuy nhiên. InnoSetup không phải là python cụ thể nhưng chúng tôi đã tạo một trình cài đặt cho một trong các sản phẩm của chúng tôi cài đặt python cùng với các phụ thuộc vào các địa điểm được người dùng chỉ định tại thời điểm cài đặt.

3

Tôi đã có kết quả tốt hơn với phụ thuộc và cấu trúc thư mục tùy chỉnh sử dụng pyinstaller và cho phép bạn tìm và chỉ định hàng nhập ẩn và móc cho các phụ thuộc lớn hơn như numpy và scipy. Cũng là một PITA, mặc dù.

0

Ok, tôi đã sử dụng py2exe trước và nó hoạt động hoàn hảo ngoại trừ một điều ... Nó chỉ hoạt động trên các máy tính Windows thực thi. Sau đó tôi đã học về Jython, biến tập lệnh python thành tệp .Jar. Mà bạn biết là có thể thực thi được từ bất kỳ máy nào có Java ("Để phiên bản chạy mới nhất của bạn") được cài đặt. Đó là tuyệt vời bởi vì cả hai Unix, cửa sổ, và ios (Hầu hết thời gian) Chạy java. Điều đó có nghĩa là nó có thể thực thi được từ tất cả các máy sau. Miễn là họ chạy Java. Không cần "py2mac + py2exe + freeze" chỉ để chạy trên tất cả các hệ điều hành. Chỉ cần Jython

Để biết thêm thông tin về cách hoạt động và cách bạn có thể sử dụng, hãy nhấp vào đây.
http://www.jython.org/

+0

Vui lòng cung cấp thông tin chi tiết hơn về giải pháp của bạn. Giải thích các điều khoản, đính kèm các liên kết bên ngoài nếu cần. –

+0

Xin lỗi về điều đó, và một hình thức đơn giản như py2exe chuyển các dự án python của bạn thành tệp jar thực thi. GoogleJjython nhanh chóng và dễ dàng như vậy. –

+0

Lần chỉnh sửa cuối cùng có giúp ích gì không? –

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