【问题标题】:How can I make my script choose the right python interperter?如何让我的脚本选择正确的 python 解释器?
【发布时间】:2013-02-19 10:14:48
【问题描述】:

我安装了 2.7 和 3.0 版本的 Python 解释器(在我的 Ubuntu 32 系统上),但一个特定的脚本使用 3.0。

使用

#!/usr/bin/python3 -B

当程序以python myprogram.py 运行时将不起作用。

而且我还需要一个在我也安装了两个 python 版本的 Windows 中也适用的解决方案。

如何使脚本仅使用正确的 python 版本运行?

【问题讨论】:

  • 你不能,因为python在这种情况下默认为python-2.x,所以你的脚本已经运行了。

标签: python-3.x python-2.7 python


【解决方案1】:

请使用virtualenv,这使得孤立的Python环境变得容易。

【讨论】:

【解决方案2】:
python = Python to use. # This has to be the absolute path to Python executable

os.execl(python, python, * sys.argv)

这样你就可以用你想使用的python重启脚本了。不是很时尚。

【讨论】:

  • 如果你使用 exec(p) 变体,你可以从你的路径运行命令
【解决方案3】:

我不知道你为什么不能用python3 foo.py 启动程序,但是有可能让python2 程序用类似的东西重新启动为python3。

import sys
if sys.version_info.major != 3:
    import os
    # replace this process with a python3 process
    os.execlp("python3", "python3", *sys.argv)

这是一个糟糕的解决方案,因为现在你的 python3 程序不能使用任何无效的 python2 语法

【讨论】:

    【解决方案4】:

    请看The wrong python interpreter is called

    您必须根据所需 Python 版本和系统变量的安装位置选择正确的解释器。

    【讨论】:

    • 那里的答案没有提供在 Windows 下也可以工作的便携式解决方案。
    猜你喜欢
    • 1970-01-01
    • 2018-06-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-29
    • 2011-10-20
    • 2013-05-06
    • 2022-01-06
    • 1970-01-01
    相关资源
    最近更新 更多