美好的一天,
在尝试使用Pyinstaller制作独立(--onefile)exe时,我遇到了一个奇怪的错误。执行过程中找不到两个.dll,即使它们已正确打包到exe中并在运行时正确放置到temp/_MEIPASSxxxxx
文件夹中,如下面的屏幕快照所示。在开发计算机上不会发生这种情况。
我也感谢this thread在此文件夹中添加了数据(图标和自述文件),程序查找它们没有问题,因此问题仅在于二进制文件,而显然不是数据。在--onedir模式下也完全没有问题,只有--onefile。
这是我的.spec:
# -*- mode: python -*-
block_cipher = None
import sys
sys.setrecursionlimit(5000)
added_binaries = [
("python36.dll", "."),
("api-ms-win-crt-runtime-l1-1-0.dll", ".")
]
added_data = [
("PilotageIcon.png", "."),
("PilotageREADME.pdf", ".")
]
a = Analysis(['Pilotage.py'],
pathex=['C:\\Users\\local-adm\\Desktop\\Lucas\\Keithley\\2018 07 18'],
binaries=added_binaries,
datas=added_data,
hiddenimports=[],
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,
a.binaries,
a.zipfiles,
a.datas,
name='Pilotage',
debug=True,
strip=False,
upx=True,
runtime_tmpdir=None,
console=True,
icon='PilotageIcon.ico'
)
我在这里阅读了许多其他主题,但是它们与我的情况不符,因为显然文件在那里,所以我不明白为什么会出错。预先谢谢你。
Python版本:3.6.3
Pyinstaller版本:3.3.1
答案 0 :(得分:0)
一种可能的解决方法(不是修补程序),是在计算机上安装 Visual Studio 2015的Visual C ++ Redistributable 。希望能对某人有所帮助。 Credit。
这并不完全理想,因为它增加了最终用户要遵循的更多步骤。