2012-03-02 34 views
13

Yêu cầu là tạo một ứng dụng di động, có nghĩa là không có trình cài đặt. Tôi nhìn vào py2exe và tôi sợ tôi cần phải chạy cài đặt nếu tôi muốn chạy nó dưới Windows. Vì vậy, câu hỏi của tôi là, tôi có thể làm cho một ứng dụng máy tính để bàn python di động mà không cần bất kỳ cài đặt nào (tất cả các phụ thuộc và libs được đóng gói), kéo từ USB/CD sẽ chạy nó không? Không.Làm cách nào để tạo ứng dụng máy tính để bàn di động python?

(Điều này rất quan trọng vì đó là một nhức đầu cho người dùng để cài đặt thư viện C++ Run Time ...)

Cảm ơn.

+0

Bạn nói rằng đó là một nhức đầu cho người dùng cài đặt thư viện thời gian chạy C++ ... tại sao không bao gồm nó trong trình cài đặt chương trình của bạn? Tôi có phần mềm Python đóng gói với py2exe sử dụng Inno Setup để cài đặt. Tôi chỉ có trình cài đặt chạy thời gian chạy Visual C++ redistributable với cờ '/ qb' để người dùng không phải làm gì cả. –

+0

@ Series8217 Cảm ơn bạn. Tôi nghĩ rằng tôi có thể làm điều đó, nhưng điểm chính là không có trình cài đặt; nếu nó có thể được di động, tốt đẹp! – CppLearner

Trả lời

9

Bạn có thể sử dụng phương pháp này với py2exe: http://www.py2exe.org/index.cgi/SingleFileExecutable

Về cơ bản, bạn sử dụng NSIS để đóng gói tất cả các tập tin và thư mục cần thiết vào một thực thi duy nhất. Khi bạn chạy nó, các tệp được yêu cầu được mở rộng đến một thư mục tạm thời, tệp thực thi được chạy và khi nó thoát ra, các tệp tạm thời sẽ bị xóa tự động.

Ngoài ra còn có một ví dụ đi kèm với py2exe sử dụng Inno Setup thay vì NSIS để đạt được kết quả tương tự. Nó được cài đặt để site-packages\py2exe\samples\extending.

+0

Cảm ơn bạn. Tôi đọc nó, xin vui lòng sửa nếu tôi sai: vì vậy sau khi tôi biên dịch trình cài đặt, tôi có thể sao chép toàn bộ thư mục sang một máy tính khác. Chạy tệp thực thi, nó sẽ tạo ra các tệp thích hợp như dll trong thư mục tmp, sẽ bị xóa sau khi người dùng đóng ứng dụng. Ứng dụng của tôi đòi hỏi sự kiên trì bởi vì chúng tôi có một cơ sở dữ liệu XML, vì vậy chúng tôi không muốn phá hủy các bản ghi. Làm thế nào để tôi biết những gì được tạo ra trong tmp? Cảm ơn. – CppLearner

+0

@CppLearner Đúng. Sau khi bạn biên dịch "trình cài đặt", tệp thực thi duy nhất bạn cần phải chuyển sang máy tính khác là "trình cài đặt". Khi bạn chạy tệp thực thi đó, nó giải nén nội dung của nó (exe của ứng dụng và các tệp DLL bắt buộc, v.v.), chạy ứng dụng và khi ứng dụng thoát nó xóa thư mục tạm thời. Bạn có thể kiểm soát hành vi bằng cách chỉnh sửa tập lệnh NSIS mẫu. –

+1

@CppLearner Nếu bạn muốn lưu trữ dữ liệu liên tục, hãy lưu trữ dữ liệu ở nơi có thể truy cập ... có lẽ '% homepath% \ AppData \ MyXMLDB' hoặc một cái gì đó tương tự. Sau đó, ứng dụng luôn có thể tìm thấy nó, bất kể bạn thực thi nó từ đâu. –

3

Bạn cũng có thể ngã ba Portable Python và sửa đổi để bao gồm ứng dụng và thư viện bạn cần. Nó chạy từ bất kỳ vị trí ổ đĩa/mạng nào mà không cần cài đặt và bạn có thể chọn bạn muốn 2.xx hoặc 3.xx dựa trên lõi Python

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