我有一个使用vpython的简单脚本(只是测试),我想用pyinstaller创建一个.exe文件。
这是剧本:
from visual import*
box()
然后我在控制台中运行:
pyinstaller sss.py
但.exe不工作(显然)
我一直在谷歌上搜索如何为vpython制作.spec文件,但一无所获。
还尝试制作此.spec文件
# -*- mode: python -*-
block_cipher = None
a = Analysis(['sss.py'],
pathex=['C:\\Users\\hdfh\\Documents\\Python Scripts'],
binaries=None,
datas=None,
hiddenimports=(['visual','vis','visual_common','viddle']),
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='sss.exe',
debug=False,
strip=None,
upx=True,
console=False )
coll = COLLECT(exe,
a.binaries,
a.zipfiles,
a.datas,
strip=None,
upx=True,
name='sss')
但它使工作变得轻而易举
答案 0 :(得分:1)
我会回应自己,也许这有助于某人。
当pyinstaller与vpython一起使用并且您尝试运行.exe文件时,查找放置在
中的TGA存档存在问题C:\Anaconda2\Lib\site-packages\visual_common
所以我们必须编辑档案材料.py
C:\Anaconda2\Lib\site-packages\visual_common\materials.py
我们在这里寻找代码
import sys
if hasattr(sys,'frozen') and (sys.frozen=="windows_exe" or sys.frozen=="console_exe"):
texturePath="visual\\"
else:
texturePath = os.path.split( __file__ )[0] + "/"
del sys
对我来说,将texturePath=...
更改为另一个目录,例如C:
import sys
if hasattr(sys,'frozen') and (sys.frozen=="windows_exe" or sys.frozen=="console_exe"):
texturePath=os.path.abspath("C:/")
else:
texturePath = os.path.abspath("C:/")
del sys
保存并将TGA存档从visual_common移动到C:/(或移动到所选位置),最后尝试从控制台构建.exe
pyinstaller test.py
对于这项工作......