我很困惑地看到一些文件和文件夹实际上是在pyinstaller
生成的dist文件夹中结束的。例如,我的项目根目录中的.git
与根目录中的其他文件一起以dist/Script/mpl-data/.git
结尾。你知道如何防止这种情况发生吗?
我使用的specfile如下所示:
block_cipher = None
a = Analysis(['..\\scripts\\scipt.py'],
pathex=['C:\\Users\\..\\scripts'],
binaries=[],
datas=[...],
hiddenimports=['pkg_resources.py2_warn'],
hookspath=[],
runtime_hooks=[],
excludes=['**/*.git', '**/__cache__', '**/dist', '**/build', '**/InnoSetup'],
win_no_prefer_redirects=False,
win_private_assemblies=False,
cipher=block_cipher,
noarchive=False)
pyz = PYZ(a.pure, a.zipped_data, cipher=block_cipher)
exe = EXE(pyz,
a.scripts,
[],
exclude_binaries=True,
name='Script',
debug=False,
bootloader_ignore_signals=False,
strip=False,
upx=True,
console=True )
coll = COLLECT(exe,
a.binaries,
a.zipfiles,
a.datas,
strip=False,
upx=True,
upx_exclude=[],
name='Script')
我尝试添加要排除的目录名,但不起作用。
我使用pyinstaller的方式是从我的包的根目录。
|-package/__init__.py
| |...
|-specfiles/pyinstaller_specfile.spec
|-scripts/mainscript.py
|-hooks/...
|-setup.py
|...
我打电话给你
pyinstaller --onedir --noconfirm specfiles\pyinstaller_specfile.spec --additional-hooks-dir=hooks
发布于 2021-09-23 22:54:10
有帮助的是更改了我运行pyinstaller的目录。
而不是根目录,并调用
pyinstaller --onedir --noconfirm specfiles\pyinstaller_specfile.spec --additional-hooks-dir=hooks
我更改为specfiles
并调用:
pyinstaller --onedir --noconfirm pyinstaller_specfile.spec --additional-hooks-dir=hooks
这会更改dist文件夹的位置(到specfiles中),但会阻止导入所有不需要的文件。
更新:更新到最新版本的pyinstaller效果更好。
https://stackoverflow.com/questions/69305901
复制相似问题