我为Python 2和3安装了两个版本的Anaconda。
我添加了路径。
我使用Anaconda提示。
python program.py
它假设我使用的是Python 3.例如,它无法理解:
print "hello!"
我试过了:
py program.py
py -2 program.py
但他们没有用。我该如何运行Python 2程序?
如果我输入:
python
在Acaconda提示中,然后它说:
python 3.5.1. Anaconda 2.4.1
因此提示假设我使用的是Python 3.
但我有用Python 2编写的程序和用Python 3编写的程序。
我想顺利地在两者之间切换。我该怎么做?
答案 0 :(得分:6)
简单的解决方案是为Python 2创建一个环境:
conda create -n py27 python=2.7 anaconda
这将需要几秒钟,并将显示它将要安装的软件包列表。只需按Enter键即可。
完成后,激活新环境。
在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
您可以在bash
或.profile
中定义.bashrc
功能:
py27() {
exec &>/dev/null
source activate py27
exec &>/dev/tty
python $*
exec &>/dev/null
source deactivate
exec &>/dev/tty
}
现在,您可以使用Python 27运行程序,前提是您使用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版本的环境。