正如您在问题中提到的,
conda env能够为您想要处理的任何软件包的开发版本维护单独的Python环境.
我不太清楚为什么你发现python setup.py develop正在将matplotlib的dev版本安装到你的root环境中.
也许您创建了一个新环境,但在安装matplotlib的开发版本之前没有激活它?例如:
~$conda create --name matplotlib-dev --clone root
Fetching package metadata: ....
src_prefix: '/home/alistair/anaconda'
dst_prefix: '/home/alistair/anaconda/envs/matplotlib-dev'
Packages: 165
Files: 32
Linking packages ...
[ COMPLETE ]|#####################################################| 100%
#
# To activate this environment, use:
# $source activate matplotlib-dev
#
# To deactivate this environment, use:
# $source deactivate
#
~$conda info --envs
# conda environments:
#
matplotlib-dev /home/alistair/anaconda/envs/matplotlib-dev
root * /home/alistair/anaconda
此时我已经创建了一个matplotlib-dev环境,但我还没有激活它,所以安装任何新包仍然会修改我的root环境.
~$source activate matplotlib-dev
discarding /home/alistair/anaconda/bin from PATH
prepending /home/alistair/anaconda/envs/matplotlib-dev/bin to PATH
(matplotlib-dev)~$conda info --envs
# conda environments:
#
matplotlib-dev * /home/alistair/anaconda/envs/matplotlib-dev
root /home/alistair/anaconda
首选方法是使用pip install< path>或pip install -e< path>如果你想安装“editable”(类似于python setup.py develop给你的):
(matplotlib-dev)~$pip install -e git+git://github.com/matplotlib/matplotlib.git#egg=matplotlib-dev
Obtaining matplotlib from git+git://github.com/matplotlib/matplotlib.git#egg=matplotlib-dev
Cloning git://github.com/matplotlib/matplotlib.git to ./src/matplotlib
...
Installing collected packages: matplotlib
Running setup.py develop for matplotlib
Successfully installed matplotlib-1.5.0+337.g595868a
(matplotlib-dev)~$python -c "import matplotlib; print(matplotlib.__version__)"
1.5.0.post337+g595868a
(matplotlib-dev)~$source deactivate
discarding /home/alistair/anaconda/envs/matplotlib-dev/bin from PATH
~$python -c "import matplotlib; print(matplotlib.__version__)"
1.4.3
请注意07004,它告诉pip将源安装到./src/matplotlib-dev.如果您已经拥有了当前正在处理的本地副本,那么您也可以将路径pip传递到本地源目录,而不是git URI.
它也应该可以使用conda develop 而不是pip install -e< path>,虽然conda似乎不像pip那样提供集成的VCS支持.