我正在尝试使用
--add-data="path/to/s1/*"
在我的 PyInstaller Python 应用程序中包含一个目录
这个特定的子文件夹的结构如下:
|...
|----/s1
|----|----/database
|----|----|----add.py
|----|----|----remove.py
|----|----/plot
|----|----|----bar_chart.py
|----|----|----pie_chart.py
|...
但是,执行此操作时,我的子文件夹结构丢失了!
database
和 plot
不再是 s1 的子文件夹。结构被扁平化到根目录,所有文件夹都存储在一起。
有什么方法可以保持我原来的子文件夹结构,而不必重新组织我的整个Python项目?
事实证明,我实际上只需在构建后将原始文件结构从我的
src/
文件夹复制到我的 dist/
目录即可实现我想要的输出。
可能是一个有缺陷的解决方案,但到目前为止我还没有发现任何问题......
我发现 PyInstaller 只会展平一层文件夹,同时保留该层下方的文件夹树。对于您的情况,只需在其顶部添加另一层即可。
--add-data="path/to/top_layer/*"
“new_layer”将被展平。但's1'将被保留。
|-/top_layer
|--/new_layer
|----/s1
|----|----/database
|----|----|----add.py
|----|----|----remove.py
|----|----/plot
|----|----|----bar_chart.py
|----|----|----pie_chart.py
|...