如何使用pyinstaller制作vpython .exe

时间:2016-10-02 15:58:27

标签: python pyinstaller vpython

我有一个使用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')

但它使工作变得轻而易举

1 个答案:

答案 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

对于这项工作......