2013-02-19 69 views
2

我安装了2.7和3.0版本的Python解释器(在我的Ubuntu 32系统上),但是一个特定的脚本使用3.0。如何让我的脚本选择正确的python interperter?

使用程序与python myprogram.py运行时

#!/usr/bin/python3 -B 

将无法​​正常工作。

而且我还需要一个解决方案,该解决方案也适用于Windows,我也同时安装了两个python版本。

我该如何让脚本只能使用正确的python版本运行?

+0

你不能,因为'python'默认的python-2.X在这种情况下, ,所以你的脚本已经运行了。 – CharlesB 2013-02-19 10:17:32

回答

4

请使用virtualenv,这使得独立的Python环境变得简单。

+1

并以Python3.3开始[virtualenv将它作为标准库](http://docs.python.org/3.3/library/venv.html)作为'venv' – cfi 2013-02-19 15:15:21

0

请看看The wrong python interpreter is called

你必须根据你安装Python和你的系统变量所需版本上选择一个正确的解释。

+0

那里的答案没有提供便携式解决方案这也在Windows下工作。 – 2013-02-19 10:23:26

1
python = Python to use. # This has to be the absolute path to Python executable 

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

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

+0

如果使用exec(p)变体,则可以运行路径中的命令 – 2013-02-19 10:39:10

1

我不知道你为什么不能只用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语法