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

2024-09-30 16:34:27 发布

您现在位置:Python中文网/ 问答频道 /正文

PyInstaller 3.6 Python 2.7.16 视窗10 我试图将一个Python可执行文件捆绑到一个目录中,然后将其压缩并导出到其他Windows10机器。我一直在使用以下规范文件通过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,
               strip=False,
               upx=True,
               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 <module>
  File "c:\users\snathan\appdata\local\temp\pip-unpacked-wheel-lmq204\PyInstaller\loader\pyimod03_importers.py", line 391, in load_module
  File "DBCparser.py", line 1, in <module>
  File "c:\users\snathan\appdata\local\temp\pip-unpacked-wheel-lmq204\PyInstaller\loader\pyimod03_importers.py", line 391, in load_module
  File "canlib\kvadblib\__init__.py", line 9, in <module>
  File "c:\users\snathan\appdata\local\temp\pip-unpacked-wheel-lmq204\PyInstaller\loader\pyimod03_importers.py", line 391, in load_module
  File "canlib\kvadblib\attribute.py", line 6, in <module>
  File "c:\users\snathan\appdata\local\temp\pip-unpacked-wheel-lmq204\PyInstaller\loader\pyimod03_importers.py", line 391, 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包不是在主XLHDDiagnosticTool.py文件中导入的,而是在XLHDDiagnosticTool.py调用的另一个python文件中导入的。我试图通过指定要查找的site packages文件夹以及指定canlib和kvadblib库是隐藏导入来解释这一点,但问题仍然出现。这个问题更为复杂的是,这个问题只出现在运行该工具的某些计算机上,而在其他计算机上却没有出现


Tags: inpyfalselineloadusersappdatafile