Python 在包安装期间指定平台
Conda中的一些软件包既包括特定于平台的(例如,osx-64)版本,也包括与平台无关的(noarch)版本。虽然可以使用Python 在包安装期间指定平台,python,conda,Python,Conda,Conda中的一些软件包既包括特定于平台的(例如,osx-64)版本,也包括与平台无关的(noarch)版本。虽然可以使用--channel标志或channel::PACKAGE语法轻松指定频道,但没有任何关于指定平台的文档 当我运行conda info时,我可以看到在配置中添加的每个频道中,都有一个用于osx-64和noarch的URL。我可以为频道设置优先级,但我看不到任何平台的等效选项 作为手动解决方法,我意识到我可以直接从通道的tarball安装。例如,如果我想要Conda Forge提
--channel
标志或channel::PACKAGE
语法轻松指定频道,但没有任何关于指定平台的文档
当我运行conda info
时,我可以看到在配置中添加的每个频道中,都有一个用于osx-64和noarch的URL。我可以为频道设置优先级,但我看不到任何平台的等效选项
作为手动解决方法,我意识到我可以直接从通道的tarball安装。例如,如果我想要Conda Forge提供的Automat的noarch版本,我可以运行
conda install https://anaconda.org/conda-forge/automat/0.7.0/download/noarch/automat-0.7.0-py_1.tar.bz2
或用于osx-64
conda install https://anaconda.org/conda-forge/automat/0.7.0/download/osx-64/automat-0.7.0-py36_0.tar.bz2
但这不会安装依赖项,因此必须随后运行
conda upgrade automat
安装软件包时,如何直接指示使用特定平台?通常,如果您使用
conda info
查看频道URL,例如
channel URLs : https://conda.anaconda.org/bioconda/osx-64
https://conda.anaconda.org/bioconda/noarch
https://repo.anaconda.com/pkgs/main/osx-64
https://repo.anaconda.com/pkgs/main/noarch
https://repo.anaconda.com/pkgs/free/osx-64
https://repo.anaconda.com/pkgs/free/noarch
https://repo.anaconda.com/pkgs/r/osx-64
https://repo.anaconda.com/pkgs/r/noarch
https://conda.anaconda.org/conda-forge/osx-64
https://conda.anaconda.org/conda-forge/noarch
您可以使用子目录使用CHANNEL::PACKAGE
语法指定特定于平台的频道
例如,在Conda Forge案例中,可以使用
conda install conda-forge/osx-64::automat
或
我不明白一个包如何既可以是noarch(也就是说,不依赖于任何体系结构),又可以同时依赖于特定的体系结构。noarch版本是否不包括C扩展?看起来这些包应该有不同的名称,或者可能使用类似openblas与mkl拆分的“功能”(尽管我认为这些功能已被弃用)。@darthbith在Automat的情况下,看起来它是一个历史工件,也就是说,只有在上次提交时才转换为
noarch
()。以前,他们生成的tarball(至少对于osx-64来说)包含了预编译的二进制文件。TBH,我对实际操作不太感兴趣,但它出现在一个不同的问题中,我一直在困惑,当版本相同时,是否可以在conda install
中指定平台。
conda install conda-forge/noarch::automat