首页 > 解决方案 > 使用 Pyinstaller 创建的 Exe 不工作,没有产生任何错误

问题描述

我正在尝试从一些 py 文件中创建一个可执行文件(此时 onefile/onedir 并不重要)。我在 Python 3.8.10 下,我正在使用 pyinstaller 5.0 dev。我正在使用下面的规范文件从 anaconda powershell 提示符启动命令。我认为它会产生误报输出(“成功完成”),因为启动时的输出不会启动。

规格文件:

block_cipher = None

a = Analysis(['Main.py'],
         pathex=['D:\\Scripts\\GUI\\GUIALL\\With_proxy_ALLWORKING\\TEST_2', 'C:\\Users\\corra\\anaconda3\\envs\\oxenv6', 'C:\\Users\\corra\\anaconda3\\envs\\oxenv6\\Lib', 'C:\\Users\\corra\\anaconda3\\envs\\oxenv6\\Lib\\site-packages', 'C:\\Users\\corra\\anaconda3\\envs\\oxenv6\\Lib\\site-packages\\PyQt5', 'C:\\Users\\corra\\anaconda3\\envs\\oxenv6\\Lib\\site-packages\\zmq'],
         binaries=[('C:\\Users\\corra\\anaconda3\\pkgs\\openssl-1.1.1k-h8ffe710_0\\Library\\bin\\*.dll', '.')],
         datas=[('D:\\Lavoro\\JRC\\Scripts\\GUI\\GUIALL\\With_proxy_ALLWORKING\\TEST_2\\logo.png', '.'),
         ('C:\\Users\\corra\\anaconda3\\envs\\oxenv6\\Lib\\site-packages\\PyQt5\\*.py', '.'),
         ('C:\\Users\\corra\\anaconda3\\envs\\oxenv6\\Lib\\site-packages\\PyQt5\\*.pyd', '.')],
         hiddenimports=['folium', 'geopandas', 'ssl', '_ssl', 'PyQt5.QtCore', 'PyQt5', 'sklearn.utils.sparsetools._graph_validation', 'sklearn.utils.sparsetools._graph_tools', 'sklearn.utils.lgamma', 'sklearn.utils.lgamma', 'sklearn.utils.weight_vector'],
         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,
      [('v', None, 'OPTION')],
      exclude_binaries=True,
      name='Main',
      debug=False,
      bootloader_ignore_signals=False,
      strip=False,
      upx=False,
      console=True )
coll = COLLECT(exe,
           a.binaries,
           a.zipfiles,
           a.datas,
           strip=False,
           upx=False,
           upx_exclude=[],
           name='Main')

当我尝试启动 exe 时,在控制台中我得到许多字符串,其中一些报告“# X not found in PYZ”,其中 X 是模块或子模块的名称。以我为例,我得到了 PyQt5.QtCore、pkg_resources.extern.six.moves.urllib、pkg_resources._vendor.six.moves.urllib、traceback、win32com.gen_py、pyexpat 等。

编辑1:

当我第一次运行exe时,会出现一个应用程序错误,告诉我无法读取内存。

标签: pythonpyinstaller

解决方案


推荐阅读