python-3.x - 存在带有 Pyinstaller (--onefile) 的捆绑二进制文件,但在运行时仍未找到?
问题描述
再会,
在尝试使用 Pyinstaller 制作独立 (--onefile) exe 时,我遇到了一个奇怪的错误。执行没有找到两个 .dll,即使它们已正确打包到 exe 中并temp/_MEIPASSxxxxx
在运行时正确放置到文件夹中,如下面的屏幕截图所示。这不会发生在开发计算机上。
由于这个线程,我也在这个文件夹中添加了我的数据(图标和自述文件),并且程序在找到它们时没有问题,所以问题只是二进制文件而不是数据。在--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
解决方案
一种可能的解决方法,而不是修复方法,是在机器上安装Visual C++ Redistributable for Visual Studio 2015 。希望这可以帮助某人。信用。
这并不完全理想,因为它为最终用户添加了更多要遵循的步骤。
推荐阅读
- python - 消除 ”。” 和字符串中的“\”
- javascript - 如何从表单中收集数据并通过 ajax POST 发送(从 jQuery 到 Vanilla JS)
- java - 注释@JsonIgnore的真正用途是什么
- reactjs - React native jest throwing TypeError: Cannot read property 'propTypes' of undefined
- go - 如何在自定义 terraform 提供程序中使用隐式创建步骤处理奇怪的 API 流
- http - 有没有办法使用特定的 TCPConn 来发出 HTTP 请求?
- java - 如何在 ExpandableListView 中制作两个或三个 textview?
- r - 使用有关两个向量之间未重复级别的信息删除 df 行
- iis - IIS Http 状态问题
- asp.net-core - 将 .net core 2.2.0 升级到 2.2.6 或更高版本