我有这个 Python 脚本,我想用 Pyinstaller 将其转换为 EXE 文件。
这是我的规格文件:
# -*- mode: python ; coding: utf-8 -*-
# work-around for https://github.com/pyinstaller/pyinstaller/issues/4064
import distutils
if distutils.distutils_path.endswith('__init__.py'):
distutils.distutils_path = os.path.dirname(distutils.distutils_path)
block_cipher = None
a = Analysis(['hello-world.py'],
pathex=['C:\\Users\\Testuser\\workspace\\hello-world'],
binaries=[],
datas=[ ('lib/*', '.') ],
hiddenimports=[
'distutils',
'scipy._lib.messagestream',
'sklearn.neighbors.typedefs',
'sklearn.neighbors.quad_tree',
'sklearn.tree',
'sklearn.tree._utils'
],
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='hello-world',
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='hello-world')
但是在 Win 10 64 位虚拟机中运行时出现此错误:
Traceback (most recent call last):
File "hello-world.py", line 11, in <module>
File "c:\users\testuser\workspace\hello-world\.venv\lib\site-packages\PyInstaller\loader\pyimod03_importers.py", line 627, in exec_module
EXE 在我构建它的机器上运行良好。将文件夹复制到 VM 中会导致上述错误。我不确定错误指的是哪个 DLL。
我猜它与错误中的路径有关,因为c:\users\testuser\workspace\hello-worldVM 中不存在。我在这里缺少 Pyinstaller 选项吗?生成的 EXE 是否应该引用我的旧路径?
FFIVE
相关分类