如何在Anaconda(Conda)环境中跟踪pip安装的包?

2024-09-27 07:34:36 发布

您现在位置:Python中文网/ 问答频道 /正文

我已经安装并使用了AnacondaPython发行版,并且已经开始使用Anaconda(Conda)环境。我可以使用标准的conda install...命令将发行版中的包放入我的环境中,但是要使用外部的任何东西(即Flask WTF、Flask sqlalchemy和alembic),我需要在活动环境中使用pip install。但是,当我查看环境的内容时,无论是在目录中,还是使用conda list时,这些pip installed包都不会出现。

使用pip freezepip list只列出我安装过的每个包。

有什么方法可以跟踪我的每一条水蟒(安装了pipconda)中的内容吗?


Tags: installpip命令flask内容标准环境sqlalchemy
3条回答

conda将只跟踪它安装的包。并且pip将为您提供使用pip安装程序本身安装的包,或者在其setup.py中使用setuptools的包,因此conda build生成了egg信息。所以你基本上有三个选择。

  1. 您可以将conda listpip freeze合并,并管理使用conda(在conda list中显示)和conda包管理器安装的包以及使用pip(在pip freeze中显示但不在conda list)和pip安装的包。

  2. 只在您的环境中安装pythonpipdistribute包,并使用pip管理所有内容。(如果您在Windows上,这并不是一件小事…)

  3. 构建自己的conda包,并使用conda管理所有内容。

我个人建议使用第三个选项,因为构建conda包非常容易。在continuum的github帐户上有一个包含示例配方的git存储库。但通常可以归结为:

 conda skeleton pypi PACKAGE
 conda build PACKAGE

或者只是:

conda pipbuild PACKAGE

同样,当您构建了一次之后,您可以将它们上传到https://binstar.org/并从那里安装。

然后您将使用conda管理所有内容。

conda(新的pypi安装)的一个分支添加了与pip和pypi更好的集成。特别是conda列表还将显示pip安装的包,conda安装将首先尝试查找conda包,如果失败,将使用pip安装包。

这个分支计划在本周晚些时候合并,这样conda的2.1版本将与conda有更好的pip集成。

conda-env现在自动执行此操作(如果pip是与conda一起安装的)。

通过使用用于迁移环境的导出工具,您可以看到这是如何工作的:

conda env export -n <env-name> > environment.yml

该文件将列出conda包和pip包:

name: stats
channels:
  - javascript
dependencies:
  - python=3.4
  - bokeh=0.9.2
  - numpy=1.9.*
  - nodejs=0.10.*
  - flask
  - pip:
    - Flask-Testing

如果要继续导出环境,请将environment.yml移动到新主机并运行:

conda env create -f path/to/environment.yml

相关问题 更多 >

    热门问题