Conda一直在尝试安装所有可选的依赖项?

时间:2017-11-22 23:32:42

标签: python-3.x anaconda theano theano-cuda

安装Theano anaconda时会自动尝试安装pygpu,尽管这是一个可选的依赖项。我已从Windows用户目录中删除了.theanorc文件。

同样在运行我的应用程序时,Theano尝试从GPU加载。它就像是以某种方式记得的?

conda install theano
Fetching package metadata .............
Solving package specifications: .

Package plan for installation in environment 
C:\Users\zebco\Miniconda3\envs\py35:

The following NEW packages will be INSTALLED:

libgpuarray: 0.6.9-vc14_0
pygpu:       0.6.9-py36_0
theano:      0.9.0-py36_0

Proceed ([y]/n)?

正如您所看到的,我只指定安装theano但conda想要安装所有内容,包括可选的依赖项。

1 个答案:

答案 0 :(得分:2)

pygpu是可选的假设取决于您正在使用的包管理器。

常规Python(点子)

如果您使用的是直接Python安装(使用brew或Python站点获得),那么您将使用pip来安装theano。这主要来自

https://pypi.python.org/pypi/Theano/1.0.0

如果您下载文件并解压缩。打开setup.py,您会看到以下行

install_requires=['numpy>=1.9.1', 'scipy>=0.14', 'six>=1.9.0'],

因此将它们设置为此包的依赖项。这意味着当您安装theano时,您还会获得numpyscipysix

Anaconda Python(conda)

现在来到Anaconda python。 Anaconda不使用PyPI或pip使用的包格式。它使用自己的格式。对于Anaconda,您应该使用conda来安装所需的软件包而不是pip。

Conda有渠道,只有一个存储库,有一些可用的包。您可以使用以下

从任何渠道安装软件包
conda install -c <channel-name> <package-name>

默认频道为conda-forge。如果你看那边的theano

https://anaconda.org/conda-forge/theano/files

下载并解压缩。将有一个info/recipe/meta.yml文件。您将在同一

中注意到以下内容
requirements:
    build:
        - ca-certificates 2017.7.27.1 0
        - certifi 2017.7.27.1 py36_0
        - ncurses 5.9 10
        - openssl 1.0.2l 0
        - python 3.6.2 0
        - readline 6.2 0
        - setuptools 36.3.0 py36_0
        - sqlite 3.13.0 1
        - tk 8.5.19 2
        - xz 5.2.3 0
        - zlib 1.2.11 0
    run:
        - python
        - setuptools
        - six >=1.9.0
        - numpy >=1.9.1
        - scipy >=0.14
        - pygpu >=0.6.5,<0.7

其中指定如果要运行此程序包,则pygpu也会依赖其依赖项。所以conda下载pygpu作为依赖,你可以选择(如果你使用普通的python和pip,这可能是真的)