使用两种不同的Python发行版

使用两种不同的Python发行版,python,software-distribution,anaconda,Python,Software Distribution,Anaconda,我目前已经下载了continuum analytics的python发行版(称为anaconda),并在我的计算机上使用。我的问题是,我想在flask项目中使用virtualenv,而anaconda会闪烁一条警告:“不支持虚拟环境”。有没有办法在同一台计算机上运行两个发行版,stock python和anaconda?当然,如果您想单独使用anaconda发行版,可以设置一个别名来运行该版本,并将stock python保留为默认版本 在您的.bash\u配置文件中,Anaconda安装程序可

我目前已经下载了continuum analytics的python发行版(称为anaconda),并在我的计算机上使用。我的问题是,我想在flask项目中使用virtualenv,而anaconda会闪烁一条警告:“不支持虚拟环境”。有没有办法在同一台计算机上运行两个发行版,stock python和anaconda?

当然,如果您想单独使用anaconda发行版,可以设置一个别名来运行该版本,并将stock python保留为默认版本

在您的
.bash\u配置文件中,Anaconda安装程序可能会放置以下行:

export PATH="/path/to/your/anaconda/bin:$PATH"
将其注释掉,并添加别名;e、 g

alias pyconda='/path/to/your/anaconda/bin/python'
然后,您可以通过在新终端中运行
pyconda
来运行Anaconda python发行版

更新

当您想使用anaconda而不是python时,最好将anaconda安装中的所有内容都放在path中(这就是ipython最初崩溃的原因)

为此,请设置一个别名,例如:

alias anacondainit='export PATH="/path/to/your/anaconda/bin:$PATH"'
amorgan$ python # on a freshly opened terminal, this will load your default distro
Python 2.7.2 |EPD 7.2-1 (32-bit)| (default, Sep  7 2011, 09:16:50)
[GCC 4.0.1 (Apple Inc. build 5493)] on darwin
Type "packages", "demo" or "enthought" for more information.
>>> exit()

amorgan$ anacondainit #initialize anaconda
amorgan$ python #now when we run python, it will load the anaconda distro
Python 2.7.6 |Anaconda 1.8.0 (x86_64)| (default, Nov 11 2013, 10:49:09)
[GCC 4.0.1 (Apple Inc. build 5493)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>>
然后,anaconda安装将是该终端会话中所有内容的默认设置

例如,打开新终端后,请尝试以下操作:

alias anacondainit='export PATH="/path/to/your/anaconda/bin:$PATH"'
amorgan$ python # on a freshly opened terminal, this will load your default distro
Python 2.7.2 |EPD 7.2-1 (32-bit)| (default, Sep  7 2011, 09:16:50)
[GCC 4.0.1 (Apple Inc. build 5493)] on darwin
Type "packages", "demo" or "enthought" for more information.
>>> exit()

amorgan$ anacondainit #initialize anaconda
amorgan$ python #now when we run python, it will load the anaconda distro
Python 2.7.6 |Anaconda 1.8.0 (x86_64)| (default, Nov 11 2013, 10:49:09)
[GCC 4.0.1 (Apple Inc. build 5493)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>>

要再次使用您的其他发行版,只需加载一个新的终端,从而使anaconda离开您的路径。

我猜python也是一样的。不同的是包装

我使用anaconda的根库。我创建
ANACONDA=/path/to/ANACONDA
环境变量,并在定义变量时使用ANACONDA包:

# if You want to run the script in anaconda - export ANACONDA=/path/to/anaconda
import os
try:
    os.environ["ANACONDA"]
    sys.path.insert(1, os.environ["ANACONDA"] + "/lib/python2.7/site-packages")
except KeyError:
    pass

使用像这样的版本管理器怎么样

安装后,您可以使用它安装多个python版本:

pyenv install 2.7.16
pyenv install anaconda-1.8.0
然后在本地或全局切换到特定版本:

pyenv global 2.7.16

这有关于这种方法的更多细节。

我实际上还有另一个问题:当我pip安装某个软件时,我如何知道它将要安装到哪个发行版,以及如何强制它转到其中一个发行版?我相信pip默认情况下会在系统范围内安装,除非您指定安装包的位置。但是,您只能使用
conda
命令在Anaconda发行版中安装某些内容;例如,
conda install flask
将在您的Anaconda发行版中安装flask模块,
conda update flask
将对其进行更新。关于ipython,一个选项是设置另一个别名(
alias ipyconda='/path/to/your/Anaconda/bin/ipython'
)但经过深思熟虑,如果你想使用它,最好将anaconda中的所有内容添加到你的路径中。我更新了上面的答案,以反映如何做到这一点。我无法使用库存分配-我键入anacondainit并打开一个新的终端,但什么也没有发生。我只是得到了一个无休止的提示,我不太清楚你的意思,但我已经添加了一个示例,希望能澄清一些问题。不推荐virtualenv的原因是康达环境要好得多<代码>康达创建-n环境名称烧瓶