我正在使用pyinstaller
将.py
转换为.exe
,但是转换后,当我运行.exe
时,会弹出命令行窗口,瞬间关闭。 .exe几乎完全无法运行,然后我导航到warn.txt
文件,它说有很多缺少的模块:
missing module named resource
missing module named posix
missing module named _posixsubprocess
missing module named cv2
并分配更多(总共 24个)
我已经研究了这个问题,并且尝试使用--onefile
和--onedir
进行转换而无法得到一个好的答案。
如何导入或修复这些丢失的模块,以使 .exe
正确运行,甚至完全运行?
答案 0 :(得分:0)
尝试制作一个规格文件,并对缺少的模块使用hidden_imports:
# -*- mode: python -*-
import sys
sys.setrecursionlimit(5000)
block_cipher = None
a = Analysis(['src\\main.py'],
pathex=['your_path_text'],
binaries=[],
datas=[],
hiddenimports=['cv2','your_missing_modules...],
hookspath=[],
runtime_hooks=[],
excludes=[],
win_no_prefer_redirects=False,
win_private_assemblies=False,
cipher=block_cipher)
pyz = PYZ(a.pure, a.zipped_data,
cipher=block_cipher)
exe = EXE(pyz,
a.scripts,
exclude_binaries=True,
name='main',
debug=False,
strip=False,
upx=True,
console=True )
coll = COLLECT(exe,
a.binaries,
a.zipfiles,
a.datas,
strip=False,
upx=True,
name='main')
然后运行pyinstaller main.spec
。