How do I keep track of pip-installed packages in an Anaconda (Conda) environment?
我已经安装并使用了Python发行版,并且已经开始使用Python(Conda)环境。我可以使用标准的
使用
是否有办法跟踪我的每一个水蟒中安装了哪些东西(包括
Conda env现在自动执行此操作(如果PIP与Conda一起安装)。
通过使用用于迁移环境的导出工具,可以看到这是如何工作的:
1 | conda env export -n <env-name> > environment.yml |
该文件将列出CONDA包和PIP包:
1 2 3 4 5 6 7 8 9 10 11 | name: stats channels: - javascript dependencies: - python=3.4 - bokeh=0.9.2 - numpy=1.9.* - nodejs=0.10.* - flask - pip: - Flask-Testing |
。
如果要继续导出环境,请将
1 | conda env create -f path/to/environment.yml |
你能抓住这个联合会的
安装在你的环境中
建立你自己的
我会personally recommend期权的第三天,它的很容易的建立
1 2 | conda skeleton pypi PACKAGE conda build PACKAGE |
或是: </P >
1 | conda pipbuild PACKAGE |
当你也要建立他们一次,你可以上传他们的http:/ / / binstar.org和安装是从那里。 </P >
然后你将拥有的一切
有一个分支(康大的新pypi安装),adds更好的集成与PIP和pypi。。。。。。。特别是康大表也会显示PIP installed packages和康大的第一安装将试图找到一种康大包装和失败,会使用PIP的安装的包。 </P >
本店是定期的是出产后本周的SO,2.1版康大学院将有更好的PIP集成与康大。 </P >
我followed"维克多回答kerkez’s和都有混合的成功。我发现,有时这个配方研究 </P >
conda skeleton pypi PACKAGE
conda build PACKAGE
请看样的一切操作,但我可以不successfully进出包装。最近,我问什么,这是《康达的用户群和赫德从"特拉维斯奥列芬特锚是最好的方式来使用康大的建设和管理的packages那不与船舶的Python。你能读这个线程在这里,但我将在下面描述的方法对hopefully麦克的解答的问题更多的运算的完整………………… </P >
例如:我是要去的prettyplotlib包安装好Windows使用2.2.5康大。 </P >
你将看到的消息,建立全看好,直到最终的试验段的建设。我看到这个错误 </P >
File"C:\Anaconda\conda-bld\test-tmp_dir
un_test.py", line 23
import None SyntaxError: cannot assign to None TESTS FAILED: prettyplotlib-0.1.3-py27_0
1b)的热情去/康大- recipes / prettyplotlib meta.yaml和编辑的文件。目前,《packages被弹出式样在1A降压的结果在YAML文件有错误,这是在
1 2 3 4 | test: # Python imports imports: - - prettyplotlib - prettyplotlib |
编辑本段℃的空白行preceded通过和remove的冗余prettyplotlib也行。在这段时间的写作我有发现我需要编辑这类文件的最meta.yaml外部packages I AM installing与康大的意思,这有一个空白的进出线错误致因的沿用冗余进出的给定的包装。 </P >
1C)运行的命令从1A,这应该完全退出与错误的这段时间。在端部到你将被问如果你想上传的binstar建造的。I entered好,然后看到了这样的消息: </P >
If you want to upload this package to binstar.org later, type:
$ binstar upload C:\Anaconda\conda-bld\win-64\prettyplotlib-0.1.3-py27_0.tar.bz2
这tar.bz2文件是建立,你现在真的需要安装。 </P >
2)
下面的这些步骤,我要用successfully康大的安装一个数的packages说不来与Python。以前,我有installed一些使用这些点子,所以我是
方法的背景下,我想这最近的博客后用"特拉维斯奥列芬特将helpful中心的人谁不喜欢我们的一切,这是appreciate激情的鲁棒的Python包装的东西,但当然,appreciate当"好作品"。康大看来像一个伟大的方式向………………… </P >
这就是我为什么要写picky:http://picky.readthedocs.io/
它是一个python包,跟踪在virtualenvs和conda envs中使用pip或conda安装的包。
我想这里缺少的是当你这样做的时候:
1 | >pip install . |
。
要使用setup.py安装本地包,它安装一个对所有使用的Conda环境都可见的包。同一版本的python。注意,我使用的是Conda版本的PIP!
例如,如果我使用python2.7,它会将本地包放在这里:
/usr/local/anaconda/lib/python2.7/站点包
如果稍后创建一个新的conda env,python=2.7(=默认值):
1 2 3 | >conda create --name new >source activate new |
然后做:
1 | (new)>conda list // empty - conda is not aware of any packages yet |
。
但是,如果我这样做:
1 | (new)>pip list // the local package installed above is present |
号
因此,在这种情况下,Conda不知道PIP包,但该包对Python是可用的。
但是,如果我在创建(并激活)新的conda env之后安装本地包(再次使用pip),那么conda会看到它:
1 | (new)>conda list // sees that the package is there and was installed by pip |
号
因此,我认为Conda和PIP之间的交互存在一些问题——即,使用PIP从一个Conda env中安装本地包,使该包对同一个Python版本的所有其他Conda env可用(但不能通过Conda列表看到)。
我通常在"pip"命令之前为要安装包的特定环境的"bin/pip"文件夹加前缀。例如,如果要在环境py34中安装pymc3,则应使用以下命令:
1 | ~/anaconda/envs/py34/bin/pip install git+https://github.com/pymc-devs/pymc3 |
号
您基本上只需要找到环境"bin/pip"文件夹的正确路径,并将其放在安装命令之前。
编写描述当前环境的
1 | conda env export > environment.yml |
参考文献:
- https://github.com/conda/conda-env/
- 网址:https://github.com/conda/conda-env/issues/12
小精灵
您可以在Conda环境中安装以下给定的命令:
埃多克斯1〔8〕
然后安装环境中需要的所有PIP包。
在安装所有Conda和PIP包以导出环境后,请使用:
埃多克斯1〔9〕
这将在文件夹中创建所需的文件
我的
1 2 | $ which pip /home/kmario23/anaconda3/bin/pip |
。
因此,使用
1 | $ conda list --export > conda_list.txt |
。
但是,我没有。因此,我使用了其他几个人建议的以下命令:
1 2 3 4 5 6 | # get environment name by $ conda-env list # get list of all installed packages by (conda, pip, etc.,) $ conda-env export -n <my-environment-name> > all_packages.yml # if you haven't created any specific env, then just use 'root' |
现在,我可以看到我的