Tất cả tài liệu cho các cuộc thảo luận Pyinstaller về việc bao gồm các tệp riêng lẻ. Có thể bao gồm một thư mục hay tôi nên viết một hàm để tạo mảng bao gồm bằng cách duyệt qua thư mục bao gồm của tôi?Bao gồm một thư mục sử dụng Pyinstaller
Trả lời
Tôi ngạc nhiên rằng không có ai đề cập đến lựa chọn chính thức hỗ trợ sử dụng Tree()
:
https://stackoverflow.com/a/20677118/2230844
https://pythonhosted.org/PyInstaller/advanced-topics.html#the-toc-and-tree-classes
Còn việc sử dụng glob
thì sao?
from glob import glob
datas = []
datas += glob('/path/to/filedir/*')
datas += glob('/path/to/textdir/*.txt')
...
a.datas = datas
Dán tệp sau đây vào một thư mục đệ quy và thêm tất cả các tệp vào thư mục để phân phối.
##### include mydir in distribution #######
def extra_datas(mydir):
def rec_glob(p, files):
import os
import glob
for d in glob.glob(p):
if os.path.isfile(d):
files.append(d)
rec_glob("%s/*" % d, files)
files = []
rec_glob("%s/*" % mydir, files)
extra_datas = []
for f in files:
extra_datas.append((f, f, 'DATA'))
return extra_datas
###########################################
# append the 'data' dir
a.datas += extra_datas('data')
Excuse me, nhưng tôi không thực sự có được nó. Tôi có một thư mục có tên là '~/Scripts'. Dữ liệu của tôi được lưu trữ trong '~/Scripts/Data'. Tôi có nên thay thế 'a.datas + = extra_datas ('dữ liệu')' bằng 'a.datas + = extra_datas ('Dữ liệu')'? –
Nếu kịch bản pyInstaller của bạn cũng nằm trong 'Scripts' và bạn gọi nó bằng' python mybuildscript.py' từ bên trong 'Scripts' thì có, bạn nên thay thế bằng' Data', nếu không sử dụng '.' và' ..' để điều hướng cây thư mục. – styts
- 1. Java Jar Ant bao gồm thư mục
- 2. PHP bao gồm bên trong một bao gồm (thư mục khác nhau)
- 3. Symfony bao gồm một phần từ thư mục tùy chỉnh
- 4. Ant - Java - zipfileset - không bao gồm một thư mục
- 5. Bao gồm toàn bộ thư mục trong PHP hoặc Wildcard để sử dụng trong PHP Bao gồm?
- 6. rsync loại trừ một thư mục nhưng bao gồm một thư mục con
- 7. bao gồm các tệp tiêu đề - liên quan đến thư mục hiện tại hoặc để bao gồm các thư mục?
- 8. Sử dụng Rsync bao gồm và không bao gồm tùy chọn để bao gồm thư mục và tập tin bằng mẫu
- 9. Cách bao gồm một tệp bên ngoài ứng dụng (chiến tranh) bằng cách sử dụng jsp bao gồm
- 10. Bao gồm PHP Defines() sử dụng Composer
- 11. Microsoft.Office.Interop.Excel.dll không được bao gồm trong Thư mục Xây dựng
- 12. Nosetest bao gồm các thư mục mẹ không mong muốn
- 13. pyinstaller với cấu trúc thư mục không tầm thường
- 14. Bao gồm thư mục trống với python setup.py sdist
- 15. Bao gồm thư mục trong dự án thiết lập
- 16. Twig- Bao gồm mẫu từ thư mục khác
- 17. cmake bao gồm h tệp từ các thư mục khác
- 18. Maven - cách bao gồm các thư mục trống
- 19. Maven: Bao gồm thư mục META-INF trong thư mục lớp học
- 20. Thư mục phụ nén của Unix không bao gồm thư mục mẹ
- 21. Bao gồm các file JS trong một file xhtml được bao gồm sử dụng ui: bao gồm
- 22. Cmake: Xây dựng thư mục trong đường dẫn bao gồm
- 23. maven2: không bao gồm thư mục từ WAR
- 24. lấy phần chính của url bao gồm thư mục ảo
- 25. bao gồm tập tin .php trong thư mục trên
- 26. bao gồm ggmap sử dụng knitr
- 27. Cách nhận tệp trong thư mục, bao gồm tất cả các thư mục con
- 28. Thư mục sao chép iOS bao gồm các thư mục con
- 29. Làm cách nào để bao gồm một thư mục trống trong một cụm maven?
- 30. Java sao chép một thư mục không bao gồm một số tập tin nội bộ
Cảm ơn bạn đã chia sẻ, sử dụng [lớp Cây] (https://pythonhosted.org/PyInstaller/advanced-topics.html#the-tree-class) đã giải quyết nó cho tôi một cách thanh lịch. Bây giờ tôi chỉ cần một dòng này: 'a.datas + = Tree ('./ dir_to_include', prefix = 'dir_to_include')' – sunyata
yep, tôi nghĩ rằng nó chỉ là không được tài liệu đủ tốt, nhưng nguồn mở này, vì vậy PR được chào đón :) – denfromufa