2012-04-03 18 views
5

Tôi đang cố gắng tạo trình cài đặt từ ứng dụng Python mà chúng tôi đã mã hóa. Tôi đã viết một tập tin setup.py đơn giản và nó tạo ra một tập tin .msi không có vấn đề, nhưng tôi không thể tìm ra cách để xác định đường dẫn cài đặt mặc định. Chúng tôi không muốn nó cài đặt vào thư mục "C: \ Program Files" mặc định. Cứu giúp?Làm thế nào để tôi xác định đường dẫn cài đặt mặc định của một msi trong cx_freeze và các distutils?

+0

Vì vậy, tôi thấy mình có thể thêm "- -initial-target-dir "cờ tới dòng: ' python setup.py bdist_msi --initial-target-dir' nhưng tôi đã hy vọng sẽ làm điều đó trong tệp setup.py. – Cesar

Trả lời

2

Các biên dịch khá hạn chế về chức năng khi tạo trình cài đặt. Tôi khuyên bạn nên sử dụng NSIS để thay thế. Nó khá đơn giản và cho phép bạn tùy chỉnh nhiều hơn so với các méo.

Một cách khác sẽ được tự thêm --initial mục tiêu-dir vào danh sách đối số trong setup.py (trước khi gọi các setup chức năng):

if 'bdist_msi' in sys.argv: 
    sys.argv += ['--initial-target-dir', 'c:\default\path'] 
+0

Thông báo trước cho điều này là chúng tôi cần nó tương thích với Python 3, trong đó, nếu tôi đọc chính xác trang web, NSIS không hỗ trợ. Xin lỗi vì đã không đề cập đến điều này trước đó. – Cesar

+0

NSIS nên làm việc với bất cứ điều gì - nó không cụ thể cho python và không dựa vào python, do đó, phiên bản python không quan trọng. Có một cách khác bạn có thể làm điều đó quá mặc dù, và tôi đã cập nhật câu trả lời với nó. – aquavitae

+0

Cảm ơn! Điều đó sẽ làm việc hoàn hảo cho chúng ta! – Cesar

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