Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/307.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在包安装期间指定平台_Python_Conda - Fatal编程技术网

Python 在包安装期间指定平台

Python 在包安装期间指定平台,python,conda,Python,Conda,Conda中的一些软件包既包括特定于平台的(例如,osx-64)版本,也包括与平台无关的(noarch)版本。虽然可以使用--channel标志或channel::PACKAGE语法轻松指定频道,但没有任何关于指定平台的文档 当我运行conda info时,我可以看到在配置中添加的每个频道中,都有一个用于osx-64和noarch的URL。我可以为频道设置优先级,但我看不到任何平台的等效选项 作为手动解决方法,我意识到我可以直接从通道的tarball安装。例如,如果我想要Conda Forge提

Conda中的一些软件包既包括特定于平台的(例如,osx-64)版本,也包括与平台无关的(noarch)版本。虽然可以使用
--channel
标志或
channel::PACKAGE
语法轻松指定频道,但没有任何关于指定平台的文档

当我运行
conda info
时,我可以看到在配置中添加的每个频道中,都有一个用于osx-64noarch的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