PyInstaller add-data 中的子文件夹被扁平化

问题描述 投票:0回答:2

我正在尝试使用

--add-data="path/to/s1/*"

在我的 PyInstaller Python 应用程序中包含一个目录

这个特定的子文件夹的结构如下:

|...
|----/s1
|----|----/database
|----|----|----add.py
|----|----|----remove.py
|----|----/plot
|----|----|----bar_chart.py
|----|----|----pie_chart.py
|...

但是,执行此操作时,我的子文件夹结构丢失了!

database
plot
不再是 s1 的子文件夹。结构被扁平化到根目录,所有文件夹都存储在一起。

有什么方法可以保持我原来的子文件夹结构,而不必重新组织我的整个Python项目?

python pyinstaller packaging
2个回答
0
投票

事实证明,我实际上只需在构建后将原始文件结构从我的

src/
文件夹复制到我的
dist/
目录即可实现我想要的输出。

可能是一个有缺陷的解决方案,但到目前为止我还没有发现任何问题......


0
投票

我发现 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
|...
© www.soinside.com 2019 - 2024. All rights reserved.