首页 > 解决方案 > Windows 10 上的 Pyinstaller 找不到子包/模块

问题描述

我的项目结构如下,在 Windows 10 上使用 pyinstaller 进行构建时遇到问题。

我正在使用 python 3.7.3 和 pyinstaller 3.4。PyQt5 版本为 5.12.1

下图中的项目结构

Pyinstaller 使用以下命令正确构建:

pyinstaller --clean -F calcrun.spec

但是,当我在 dist/ 中运行 calcrun.exe 时它失败了

#calcrun.py

import sys
from CalcApp import runner
from PyQt5 import QtWidgets


if __name__ == '__main__':
    app = QtWidgets.QApplication(sys.argv)
    application = runner.MyWindow()
    sys.exit(app.exec())

下面是我得到的错误,它似乎无法看到任何模块或子包

C:\Users\Kiki\projects\learn_app\dist\calcrun>calcrun
Traceback (most recent call last):
  File "learn_app\calcrun.py", line 2, in <module>
ModuleNotFoundError: No module named 'CalcApp'
[13160] Failed to execute script calcrun

我还附上了我的calcrun.spec

# -*- mode: python -*-

block_cipher = None

a = Analysis(["calcrun.py"],
             pathex=["C:\\Users\\Kiki\\projects\\learn_app"],
             binaries=[],
             datas=[],
             hiddenimports=['pyqt5', 'pyqt5-sip'],
             hookspath=[],
             runtime_hooks=[],
             excludes=[],
             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='calcrun',
          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,
               name='calcrun')

标签: python-3.xbuildpyqt5pyinstaller

解决方案


推荐阅读