使用conda制作Python 2和3版本,但是anaconda2目录中的所有envs?

时间:2017-06-17 04:20:58

标签: python anaconda conda

我正在测试一些conda环境following their tutorial here。我的困惑在于以下设置。假设我已经下载了anaconda2。然后我的conda环境在子目录anaconda2/envs中创建。在他们的教程的第2步中,我创建了以下环境:

$ conda info --envs
# conda environments:
#
bunnies                  /home/daniel/anaconda2/envs/bunnies
snowflakes               /home/daniel/anaconda2/envs/snowflakes
root                  *  /home/daniel/anaconda2

其中bunnies是python 3而snowflakes是python 2.前一个包安装了conda create --name bunnies python=3.5 astroid babel,这就是为什么它是python 3。

但这是我的困惑:为什么它存储在anaconda2/envs目录中?据推测,这意味着环境共享包含在anaconda中的其他软件包的python 2版本,对吧?为了调查,我切换了环境并打印了包裹:

$ conda info --envs
# conda environments:
#
bunnies                  /home/daniel/anaconda2/envs/bunnies
snowflakes               /home/daniel/anaconda2/envs/snowflakes
root                  *  /home/daniel/anaconda2

$ source activate bunnies
(bunnies) $ conda list
# packages in environment at /home/daniel/anaconda2/envs/bunnies:
#
astroid                   1.4.9                    py35_0  
babel                     2.4.0                    py35_0  
beautifulsoup4            4.6.0                    py35_0  
lazy-object-proxy         1.2.2                    py35_0  
openssl                   1.0.2l                        0  
pip                       9.0.1                    py35_1  
python                    3.5.3                         1  
pytz                      2017.2                   py35_0  
readline                  6.2                           2  
see                       1.4.0                     <pip>
setuptools                27.2.0                   py35_0  
six                       1.10.0                   py35_0  
sqlite                    3.13.0                        0  
tk                        8.5.18                        0  
wheel                     0.29.0                   py35_0  
wrapt                     1.10.10                  py35_0  
xz                        5.2.2                         1  
zlib                      1.2.8                         3 

让我们看看当我运行ipython并导入一个列出的软件包时会发生什么,但 与anaconda捆绑在一起。

(bunnies) $ python --version
Python 3.5.3 :: Continuum Analytics, Inc.
(bunnies) $ python
Python 3.5.3 |Continuum Analytics, Inc.| (default, Mar  6 2017, 11:58:13) 
[GCC 4.4.7 20120313 (Red Hat 4.4.7-1)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import numpy as np
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named 'numpy'

出现错误,因为这是python 3而不是2.但是当我切换到snowflakes环境时,确实numpy import 正常工作,这必须是因为它指的是用anaconda 2安装的软件包,用于python 2.7。

我的问题是,为什么教程会在anaconda 2中制作python 3版本?这种做法很糟糕吗?我将分别创建anaconda2和anaconda3目录,并使每个目录中的所有环境都使用相同的python版本。有没有理由不这样做?

0 个答案:

没有答案