我安装了2.7和3.0版本的Python解释器(在我的Ubuntu 32系统上),但是一个特定的脚本使用3.0。如何让我的脚本选择正确的python interperter?
使用程序与python myprogram.py
运行时
#!/usr/bin/python3 -B
将无法正常工作。
而且我还需要一个解决方案,该解决方案也适用于Windows,我也同时安装了两个python版本。
我该如何让脚本只能使用正确的python版本运行?
我安装了2.7和3.0版本的Python解释器(在我的Ubuntu 32系统上),但是一个特定的脚本使用3.0。如何让我的脚本选择正确的python interperter?
使用程序与python myprogram.py
运行时
#!/usr/bin/python3 -B
将无法正常工作。
而且我还需要一个解决方案,该解决方案也适用于Windows,我也同时安装了两个python版本。
我该如何让脚本只能使用正确的python版本运行?
请使用virtualenv,这使得独立的Python环境变得简单。
并以Python3.3开始[virtualenv将它作为标准库](http://docs.python.org/3.3/library/venv.html)作为'venv' – cfi 2013-02-19 15:15:21
请看看The wrong python interpreter is called
你必须根据你安装Python和你的系统变量所需版本上选择一个正确的解释。
那里的答案没有提供便携式解决方案这也在Windows下工作。 – 2013-02-19 10:23:26
python = Python to use. # This has to be the absolute path to Python executable
os.execl(python, python, * sys.argv)
这样你就可以用你想要使用的python重启脚本。不是很时尚。
如果使用exec(p)变体,则可以运行路径中的命令 – 2013-02-19 10:39:10
我不知道你为什么不能只用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语法
你不能,因为'python'默认的python-2.X在这种情况下, ,所以你的脚本已经运行了。 – CharlesB 2013-02-19 10:17:32