Giả sử tôi có ba tập lệnh. Main.py (có tất cả nhập khẩu), 1.py (kịch bản ngẫu nhiên), 2.py (kịch bản ngẫu nhiên).Nhập các mô-đun Python từ một vị trí được chọn
pyinstaller -F --onedir Main.py (80mb)
pyinstaller -F --onedir 1.py (80mb)
pyinstaller -F --onedir 2.py (80mb)
Điều này tạo ra 3 thư mục tôi sau đó sao chép 1.exe và 2.exe vào thư mục chính với tất cả các phụ thuộc và điều này hoạt động tốt.
Hai vấn đề được trình bày:
Vấn đề là kích thước. Một tệp làm giảm điều này xuống 30mb, một thư mục giữ nó ở mức 80mb
Quan trọng hơn, exe không thể rời khỏi thư mục đó. Tôi đã phải sử dụng các phím tắt bằng Python.
Tôi đang theo dõi this, được cho là giải pháp thay thế.
Câu hỏi của tôi là, làm thế nào tôi có thể đọc các mục nhập từ một vị trí được chọn bằng pyinstaller để tôi có thể di chuyển các tệp thi hành?
Logic: Compile Main.py sử dụng pyinstaller -F –onefile Main.py (15mb).
Tạo thư mục tại C:\13\
vẻ rất exe như C:\13\Main.exe
liên kết tất cả các exe tại C:\13
? với --runtime-tmpdir PATH
Tôi đang cố gắng tìm tài liệu về việc nhập khẩu từ bên trong thư mục exe hoặc thậm chí "one dir"
. Có rất nhiều về việc nhập khẩu từ khi bắt đầu, nhưng không nhiều vào việc nhập khẩu từ một vị trí được chọn để tôi có thể chạy exe ở bất cứ đâu. Hơn nữa, rất khó để tìm thấy các mô-đun trong pyinstaller ngắn của decompiling nó thêm vào sự nhầm lẫn này.
Có lẽ ...
pyinstaller -F --runtime-tmpdir C:\13 --onefile 2.py
pyinstaller -F --runtime-tmpdir C:\13 --onedir 3.py
Mặc dù đối với tôi không có thư mục được tạo ra. Làm thế nào để tôi đi về việc nhập khẩu từ một địa điểm được chọn.
Một thể solution:
if getattr(sys, 'frozen', False):
os.path.join(sys._MEIPASS, "C:\aa")
Mặc dù như bạn có thể nhìn thấy trong image, nó cho phép nói rằng chúng tôi muốn gấu trúc có một vài tác phẩm để lựa chọn ...
Tài liệu từ pyinstaller có chương chi tiết về cách đóng gói nhiều exe chia sẻ cùng một phụ thuộc: https://pyinstaller.readthedocs.io/en/stable/spec-files.html#multipackage-bundles –
@FlorentB. "Tính năng này bị hỏng trong bản phát hành PyInstaller 3.0" –