Tôi hiện đang viết một ứng dụng dòng lệnh bằng Python, cần được cung cấp cho người dùng cuối theo cách dễ dàng tải xuống và chạy. Đối với những người trên Windows, những người có thể không có Python (2.7) được cài đặt, tôi có ý định sử dụng PyInstaller để tạo ra một Windows thực thi khép kín. Sau đó, người dùng có thể tải xuống "myapp.exe" và chạy myapp.exe [ARGUMENTS]
.Đóng gói một ứng dụng dòng lệnh để phân phối?
Tôi cũng muốn cung cấp bản tải xuống (nhỏ hơn) cho người dùng (trên các nền tảng khác nhau) đã cài đặt Python. Một tùy chọn là đặt tất cả mã của tôi vào một tệp .py duy nhất, "myapp.py" (bắt đầu bằng #! /usr/bin/env python
) và cung cấp mã này. Điều này có thể được tải xuống, sau đó chạy bằng cách sử dụng myapp.py [ARGUMENTS]
hoặc python myapp.py [ARGUMENTS]
. Tuy nhiên, việc hạn chế ứng dụng của tôi thành một tệp .py có một số nhược điểm, bao gồm hạn chế khả năng tổ chức mã của tôi và làm cho việc sử dụng phụ thuộc của bên thứ ba trở nên khó khăn.
Thay vào đó, tôi muốn phân phối nội dung của một số tệp của mã của riêng tôi, cộng với một số phụ thuộc (tinh khiết Python). Có bất kỳ công cụ nào có thể gói tất cả điều này vào một tệp duy nhất, có thể dễ dàng tải xuống và chạy bằng cài đặt Python hiện có không?
Chỉnh sửa: Lưu ý rằng tôi cần những ứng dụng này để dễ dàng cho người dùng cuối kết thúc để chạy. Họ không có khả năng cài đặt pip
hoặc bất kỳ thứ gì khác ngoài lõi Python. Sử dụng PyInstaller, tôi có thể tạo một tệp mà những người dùng này có thể tải xuống từ web và chạy bằng một lệnh (hoặc, nếu không có đối số, chỉ cần bằng cách nhấp đúp). Có cách nào để đạt được điều này dễ sử dụng mà không cần sử dụng PyInstaller (tức là không có gói redundantly Python runtime)?
cho giải pháp thứ hai (nhỏ), tại sao không sử dụng pip? –
Bạn có các câu hỏi rất giống [ở đây về Windows] (http://stackoverflow.com/questions/2136837/process-to-convert-simple-python-script-into-windows-executable?rq=1) và [tại đây trong chung] (http://stackoverflow.com/questions/7156333/packaging-a-python-application?rq=1) – logc
Bạn đề cập đến các nền tảng khác nhau, nhưng không đề cập đến chúng là gì. "Gói cài đặt sudo apt-get" có đủ dễ dàng cho người dùng cuối của bạn không? – berto