我正在使用 PyInstaller 打包 Python 项目。我的项目包含一个 db.sqlite 文件,我需要将其包含在最终的可执行文件中。我正在使用 .spec 文件来打包应用程序,但我不断收到错误消息,指出无法找到 db.sqlite 文件,即使它位于指定的目录中。
# -*- mode: python ; coding: utf-8 -*-
a = Analysis(
['gui.py'],
pathex=['D:\\Programming\\Projects\\Library_Management'],
binaries=[],
datas=[(r'D:\Programming\Projects\Library_Management\assets\db.sqlite', 'assets')],
hiddenimports=[],
hookspath=[],
hooksconfig={},
runtime_hooks=[],
excludes=[],
noarchive=False,
optimize=0,
)
pyz = PYZ(a.pure)
exe = EXE(
pyz,
a.scripts,
a.binaries,
a.datas,
[],
name='gui',
debug=False,
bootloader_ignore_signals=False,
strip=False,
upx=True,
upx_exclude=[],
runtime_tmpdir=None,
console=False,
disable_windowed_traceback=False,
argv_emulation=False,
target_arch=None,
codesign_identity=None,
entitlements_file=None,
)
当我运行
pyinstaller gui.spec
时,我收到此错误:
Unable to find 'D:\\Programming\\Projects\\Library_Management\\assets\\db.sqlite' when adding binary and data files.
我验证了
db.sqlite
文件位于我指定的路径 (D:\\Programming\\Projects\\Library_Management\\assets\\db.sqlite
) 中。我也尝试调整 .spec
文件中的路径并重建,但仍然遇到相同的错误。
PyInstaller 找不到
db.sqlite
文件的原因是什么?如何解决此问题?
这肯定和你的sqlite文件的路径有关。 尝试将它们更改为常规斜杠而不是反斜杠,或者使用相对路径而不是绝对路径来查看是否有效。
您是否尝试过在一个最小的项目上运行 pyinstaller 只是为了验证它是否可以在没有任何资产等的情况下工作?