PyInstaller 可执行文件找不到必要的导入:canlib\dllLoader.py

问题描述

PyInstaller 3.6 蟒蛇 2.7.16 视窗 10 我正在尝试将 Python 可执行文件捆绑到一个目录中,然后可以将其压缩并导出到其他 Windows 10 机器。我一直在使用以下规范文件通过 pyinstaller XLHDiagnosticTool.spec 构建该工具:

# -*- mode: python ; coding: utf-8 -*-

block_cipher = None


a = Analysis(['XLHDiagnosticTool.py'],pathex=['C:\\Users\\snathan\\xl-service-diagnostic-tool\\DiagnosticToolCodeBase','C:\Python27\Lib\site-packages'],binaries=[],datas=[
                 ('DBCs/','DBCs'),('SignalLists/','SignalLists'),('FaultIDListing.xlsx','.')
             ],hiddenimports=['canlib','kvadblib'],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='XLHDiagnosticTool',debug=False,bootloader_ignore_signals=False,strip=False,upx=True,console=True )
coll = COLLECT(exe,a.binaries,a.zipfiles,a.datas,upx_exclude=[],name='XLHDiagnosticTool')

生成的可执行文件在编译它的 Windows 10 机器上正常运行,但是当我压缩捆绑目录,将其复制到另一台 Win 10 机器,并尝试在那里运行它时,它失败并出现以下错误

C:\Users\snathan\Desktop\XLHDiagnosticTool>XLHDiagnosticTool.exe
Traceback (most recent call last):
  File "XLHDiagnosticTool.py",line 20,in <module>
  File "c:\users\snathan\appdata\local\temp\pip-unpacked-wheel-lmq204\PyInstaller\loader\pyimod03_importers.py",line 391,in load_module
  File "convertRawLog.py",line 4,in load_module
  File "DBCparser.py",line 1,in load_module
  File "canlib\kvadblib\__init__.py",line 9,in load_module
  File "canlib\kvadblib\attribute.py",line 6,in load_module
  File "canlib\kvadblib\wrapper.py",line 82,in <module>
  File "canlib\dllLoader.py",line 147,in load_dll
WindowsError: [Error 2] The system cannot find the file specified
[10704] Failed to execute script XLHDiagnosticTool

错误好像是在canlib包目录下找不到dllLoader.py文件。 canlib 和 kvadblib 包未导入到主 XLHDiagnosticTool.py 文件中,而是导入到 XLHDiagnosticTool.py 调用的另一个 python 文件中。我已经尝试通过指定要查看的 site-packages 文件夹以及指定 canlib 和 kvadblib 库是隐藏导入来解决这个问题,但问题仍然出现。由于该问题仅出现在运行该工具的某些计算机上,而在其他计算机上却没有。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)