已安装Anaconda用于Python 2和3。无法运行2。

6

我安装了Python 2和3的Anaconda版本。

我添加了路径。

我使用Anaconda提示符。

python program.py

它假定我正在使用Python 3。例如,它无法理解:
print "hello!"

我尝试过:

py program.py
py -2 program.py

但它们没有起作用。我该如何运行Python 2程序?
如果我输入:
python

在Anaconda命令提示符中,它会显示如下内容:
python 3.5.1. Anaconda 2.4.1

所以这个提示假设我正在使用Python 3。

但是我有用Python 2编写的程序和用Python 3编写的程序。

我想在两者之间平滑切换。我该怎么做?


啊...python2 program.py - Remi Guan
@KevinGuan 这个方法不起作用...也许这只适用于除了Anaconda以外的其他发行版? - user42459
您IP地址为143.198.54.68,由于运营成本限制,当前对于免费用户的使用频率限制为每个IP每72小时10次对话,如需解除限制,请点击左下角设置图标按钮(手机用户先点击左上角菜单按钮)。 - Remi Guan
@KevinGuan 谢谢。我改变了我的问题。 - user42459
1个回答

9
最简单的解决方案是创建一个Python 2环境:
conda create -n py27 python=2.7 anaconda

这个过程需要几秒钟的时间并将显示一个长长的软件包列表,它将要安装。只需按回车键并等待即可。

完成后,请激活您的新环境。

在 Windows 上:

activate py27 

在其他平台上:
source activate py27 

提示符应更改为(py27)。现在你正在使用Python 2.7。

使用以下命令取消激活:

deactivate 

现在您回到了Python 3。您可以同时在两个终端窗口中运行两个版本。您可以为其他Python版本创建环境:

conda create -n py34 python=3.4 anaconda
conda create -n py35 python=3.5 anaconda

如果您不想在环境中安装完整的Anaconda,可以创建一个包含所有软件包的环境:

conda create -n myenv python=3.5
source activate myenv

安装你需要的内容。例如:

conda install numpy pytables sympy

你可以在你的.profile.bashrc中定义一个bash函数:
py27() {
exec &>/dev/null
source activate py27
exec &>/dev/tty
python $*
exec &>/dev/null
source deactivate
exec &>/dev/tty
}

现在您可以使用Python 2.7运行程序,前提是您使用Python 2.7创建了一个名称为此的环境:

py27 myscript.py

你可以进一步泛化,并为Python 2.6、2.7、3.3、3.4和3.5创建一个命令:
pyxx() {
exec &>/dev/null
source activate $1
exec &>/dev/tty
python ${*:2}
exec &>/dev/null
source deactivate
exec &>/dev/tty
}


py26()
{
    pyxx py26 $*
}

py27()
{
    pyxx py27 $*
}

py33()
{
    pyxx py33 $*
}

py34()
{
    pyxx py34 $*
}

py35()
{
    pyxx py35 $*
}

这假设你已经创建了相应名称和Python版本的环境。

非常感谢!但是如果我这样做,我可以同时使用Python 2和3吗?在通过Anaconda安装Python之前,我使用的是另一个发行版,我可以通过键入“python xxx.py”使用Python 2,通过键入“py -3 xxx.py”使用Python 3。因此,根据程序编写的语言,我可以在提示符上来回切换。我能做到这一点吗? - user42459
是的,你可以。事实上,你可以为Python 2.6、2.7、3.3、3.4和3.5创建任意多个环境。 - Mike Müller
你可以在两个终端窗口同时运行两个版本。这意味着我需要打开两个终端窗口,对吧?但是如何在一个终端窗口中运行两个版本的Python程序呢?例如,当我运行Python 3程序时,我会输入“py3 xxx.py”,当我运行Python 2程序时,我会输入“py2 xxx.py”。 - user42459
看起来你的解决方案允许我在2和3之间更改环境。这很好..但是当我运行程序时,我不能只是在输入“py -3 xxx.py”时添加“-3”吗?在安装Anaconda之前,这就是我所做的。因此,我认为必须有一种方法可以在Anaconda中实现这一点.. - user42459

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接