我正在尝试将.py文件转换为exe。我的文件hello.py读取:
print "Hello, World!"
我目前正在尝试使用pyinstaller。但是当我运行命令
时pyinstaller hello.py
我收到错误消息"元组索引超出范围"我被告知这意味着我的python版本不受支持。特别是情况似乎是pyinstaller认为我正在尝试将python 3.6代码编译成exe。但是我安装了python 2.7和python 3.6。我如何让它知道我希望它将代码视为python 2.7代码?
答案 0 :(得分:10)
使用 Python3 :
确保在Python 3.x中安装PyInstaller
:pip3 freeze
PyInstaller == 3.3.1
然后运行命令:
/path/to/python3 -m PyInstaller your_script.py
答案 1 :(得分:1)
假设python 2.x
下的路径python2
可以
python2 -m pyinstaller hello.py
答案 2 :(得分:1)
当您需要将应用程序捆绑在一个操作系统中,但要针对不同版本的Python和支持库进行捆绑时,例如,Python 3版本和Python 2.7版本;或使用Qt4的受支持版本以及使用Qt5的开发版本–我们建议您使用virtualenv。使用virtualenv,您可以维护Python和已安装软件包的不同组合,并可以轻松地从一种组合切换到另一种组合。 (如果仅使用Python 3.4和更高版本,则python3 -m venv可以完成相同的工作,请参阅venv模块。)
答案 3 :(得分:0)
我跑了两件事。 如果你卸载python3,它适用于python2。 如果您安装了python3(并且它是主要的),并且在python3中安装了pyinstaller,它将无法工作(使用python3 pyinstaller)。 如果您安装了python3,但没有在python3中安装或卸载它(pip3卸载pyinstaller),则pyinstaller可以工作。
检查环境变量(窗口10)PATH首先使用python3。这可能是问题,可能无法解决,因为它首先检查python3目录,并为python3选择pyinstaller。 pyinstaller也不检查文件(#!/ usr / env / bin python2)。
除非pyinstaller提出与此问题相关的选项,否则可能暂时无法从python3卸载pyinstaller。
注释 也可以使用py2exe,python2使用py2exe,python3使用pyinstaller
答案 4 :(得分:0)
如果先前未安装,请先以python2.7版本安装Pyinstaller
py -2 -m pip install pyinstaller
,然后转到您的文件夹并
py -2 -m pyinstaller -F filename.py