【问题标题】:How to change python version for use with pyinstaller如何更改 python 版本以与 pyinstaller 一起使用
【发布时间】:2017-09-12 13:49:17
【问题描述】:

我正在尝试将 .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 代码?

【问题讨论】:

标签: python python-2.7 pyinstaller


【解决方案1】:

使用 Python3

确保PyInstaller 已安装在 Python 3.x 中:pip3 freeze

PyInstaller==3.3.1

然后运行命令:

/path/to/python3 -m PyInstaller your_script.py

【讨论】:

  • 请注意,至少在 Windows 上(我还没有在其他地方测试过)模块名称是区分大小写的(大写“P”和“I”)。同样在 Windows 上,使用 Python3 附带的 python 启动器也很方便:例如,py -3.6-32 -m PyInstaller script.py
【解决方案2】:

如果之前未安装,请先在您的 python2.7 版本中安装 Pyinstaller py -2 -m pip install pyinstaller

然后转到您的文件夹并

py -2 -m pyinstaller -F filename.py

【讨论】:

  • 在 Windows 上,区分大小写:py -2 -m PyInstaller -F filename.py
【解决方案3】:

当您需要将应用程序捆绑在一个操作系统中,但需要针对不同版本的 Python 和支持库——例如,Python 3 版本和 Python 2.7 版本;或者使用 Qt4 的受支持版本和使用 Qt5 的开发版本——我们建议您使用 virtualenv。使用 virtualenv,您可以维护 Python 和已安装包的不同组合,并轻松地从一种组合切换到另一种组合。 (如果您只使用 Python 3.4 及更高版本,python3 -m venv 执行相同的工作,请参阅模块 venv。)

  • 使用 virtualenv 根据需要创建尽可能多的不同开发环境,每个
  • 具有 Python 和已安装包的独特组合。
  • 在每个环境中安装 PyInstaller。
  • 使用 PyInstaller 在每个环境中构建您的应用程序。

【讨论】:

    【解决方案4】:

    假设您在python2 下的路径上有python 2.x,您可以这样做

        python2 -m pyinstaller hello.py
    

    【讨论】:

    • 对于 pyton3.9,我需要输入 PyInstaller 而不是 pyinstaller
    【解决方案5】:

    我跑了两件事。 如果你卸载 python3,它适用于 python2。 如果您安装了 python3(它是主要的),并且在 python3 中安装了 pyinstaller,它将无法工作(使用了 python3 pyinstaller)。 如果你安装了python3,但没有在python3中安装或卸载它(pip3卸载pyinstaller),pyinstaller可以工作。

    检查环境变量(windows 10)PATH首先有python3。这可能是问题并且可能无法解决,因为它首先检查 python3 目录,然后为 python3 选择 pyinstaller。 pyinstaller 也不检查文件 (#!/usr/env/bin python2)。

    除非 pyinstaller 提供与此问题相关的选项,否则除了暂时从 python3 卸载 pyinstaller 之外,可能没有其他解决方案。

    注意 也可以使用py2exe,python2使用py2exe,python3使用pyinstaller

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-07-20
      • 2015-04-19
      • 2016-12-21
      • 2021-05-17
      • 2018-05-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多