PyInstaller 在打包“.spec”文件期间无法找到数据文件(db.sqlite)

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

我正在使用 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
文件的原因是什么?如何解决此问题?

python sqlite tkinter pyinstaller executable
1个回答
0
投票

这肯定和你的sqlite文件的路径有关。 尝试将它们更改为常规斜杠而不是反斜杠,或者使用相对路径而不是绝对路径来查看是否有效。

您是否尝试过在一个最小的项目上运行 pyinstaller 只是为了验证它是否可以在没有任何资产等的情况下工作?

© www.soinside.com 2019 - 2024. All rights reserved.