python 2而不是python 3作为(临时)默认python?

时间:2011-08-30 00:10:18

标签: python

在我的电脑上

~$ python -V
 Python 3.2.1

但是当我运行一些python程序时遇到了问题。我猜是(至少我想试试这个)有一些向后兼容性问题,我想用

运行那些python脚本
 python2 2.7.2-2

也安装在我的系统上,但我不知道如何将其作为(临时)默认python。 python脚本以

开头
 #!/usr/bin/env python

我正在使用arch linux。

8 个答案:

答案 0 :(得分:69)

您可以使用virtualenv

# Use this to create your temporary python "install"
# (Assuming that is the correct path to the python interpreter you want to use.)
virtualenv -p /usr/bin/python2.7 --distribute temp-python

# Type this command when you want to use your temporary python.
# While you are using your temporary python you will also have access to a temporary pip,
# which will keep all packages installed with it separate from your main python install.
# A shorter version of this command would be ". temp-python/bin/activate"
source temp-python/bin/activate

# When you no longer wish to use you temporary python type
deactivate

享受!

答案 1 :(得分:11)

只需使用python2.7或python2而不是python调用脚本。

所以:

python2 myscript.py

而不是:

python myscript.py

你可以做的是替换当前链接到python3的/ usr / bin中的符号链接“python”,其中包含指向所需python2 / 2.x可执行文件的链接。然后你可以像调用python 3一样调用它。

答案 2 :(得分:10)

mkdir ~/bin
PATH=~/bin:$PATH
ln -s /usr/bin/python2 ~/bin/python

停止使用python2,exitrm ~/bin/python

答案 3 :(得分:9)

您不需要“临时默认Python”

您希望2.7脚本以

开头
/usr/bin/env python2.7

您希望3.2脚本以

开头
/usr/bin/env python3.2

“默认”Python真的没用。而“临时违约”的想法只是走向绝对混乱的道路。

记住。

  

明确比隐含更好。

答案 4 :(得分:9)

您可以使用alias python="/usr/bin/python2.7"

bash-3.2$ alias
bash-3.2$ python
Python 2.7.6 (v2.7.6:3a1db0d2747e, Nov 10 2013, 00:42:54) 
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> ^D
bash-3.2$ alias python="/usr/bin/python3.3"
bash-3.2$ python
Python 3.3.3 (v3.3.3:c3896275c0f6, Nov 16 2013, 23:39:35) 
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> 

答案 5 :(得分:5)

如果你在virtualenv上遇到一些问题,

你可以使用它:

sudo ln -sf python2 /usr/bin/python

sudo ln -sf python3 /usr/bin/python

答案 6 :(得分:3)

使用python命令启动脚本,而不是直接启动shell。 E.g。

  python2 /usr/bin/command

AFAIK这是使用错误的env解释器行解决脚本的推荐方法。

答案 7 :(得分:1)

作为virtualenv的替代方法,您可以使用anaconda

在Linux上,使用python 2.7创建环境:

conda create -n python2p7 python=2.7
source activate python2p7

要停用它,请执行以下操作:

source deactivate

可以在您的环境中安装其他软件包。