Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/290.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/17.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 如何跨平台共享conda环境_Python_Cross Platform_Conda - Fatal编程技术网

Python 如何跨平台共享conda环境

Python 如何跨平台共享conda环境,python,cross-platform,conda,Python,Cross Platform,Conda,康达的文档解释了如何与其他人共享环境 但是,文档告诉我们这不是跨平台的: NOTE: These explicit spec files are not usually cross platform, and therefore have a comment at the top such as # platform: osx-64 showing the platform where they were created. This platform is the one whe

康达的文档解释了如何与其他人共享环境

但是,文档告诉我们这不是跨平台的:

NOTE: These explicit spec files are not usually cross platform, and      
therefore have a comment at the top such as # platform: osx-64 showing the  
platform where they were created. This platform is the one where this spec
file is known to work. On other platforms, the packages specified might not
be available or dependencies might be missing for some of the key packages
already in the spec.

NOTE: Conda does not check architecture or dependencies when installing 
from an explicit specification file. To ensure the packages work correctly,
be sure that the file was created from a working environment and that it is 
used on the same architecture, operating system and platform, such as linux-
64 or osx-64.

在一个平台(如CentOS)和另一个平台(如Windows)中,是否有一种很好的方法来共享和重新创建conda环境?

假设您希望确保 您通常关心的包的相同版本也在 不同的平台,您不关心完全相同版本的 整个依赖关系树中的所有包。如果您正在尝试安装 您的整个依赖关系树中具有 由于某些conda软件包具有不同的 osx/win/linux的依赖项。例如 将在Win和osx/linux上安装不同的软件包,因此环境列表 那就不一样了

建议:手动创建
环境.yaml
文件并指定或pin 只有您关心的依赖项。
让conda解算器完成其余工作。 可能值得注意的是,
conda env
(用于管理conda的工具 环境)明确建议您“始终创建
environment.yml
手动归档。”

然后只需执行
conda env create--file environment.yml

请看一下您的自述

它们可以非常简单:

name: basic_analysis
dependencies:
  - numpy
  - pandas
或者更复杂,您可以锁定依赖项并指定anaconda.org频道 安装地点:

name: stats-web
channels:
  - javascript
dependencies:
  - python=3.4   # or 2.7 if you are feeling nostalgic
  - bokeh=0.9.2
  - numpy=1.9.*
  - nodejs=0.10.*
  - flask
  - pip:
    - Flask-Testing

在任何一种情况下,都可以使用
conda env create--file environment.yaml

conda env export将整个环境导出到名为my_env.yml的文件中

检查在OS X上仅获取前缀而不是包括pip在内的完全依赖项的工作解决方案

步骤1:如果激活,则从环境中停用。否则它将创建只有前缀的yml文件

步骤2:运行下面的命令以导出 conda环境导出-n my_env>my_env.yml 它将在一个yml文件中导出每个必需的依赖项、通道和pip安装,该文件可导入以与其他人共享

步骤3:运行下面的命令导入 conda env create-n my_env-f=my_env.yml
它将创建与共享同机一样的精确环境。

对于那些有兴趣维护可在Linux、macOS和Windows中使用的单个环境文件的解决方案的人,请检查位于的
conda devenv
工具。

同时可以手动创建
环境.yml
文件,通过使用
conda env export--from history
标志,可以确保您的环境跨平台工作

这将只包括您明确要求的包,而不是包括您环境中的每个包

例如,如果您创建一个环境并安装一个包
conda install python=3.8 numpy
,它将安装许多其他依赖项以及python和numpy

如果随后运行
conda env export>environment.yml
,则您的
environment.yml
文件将包含自动为您安装的所有附加依赖项conda

另一方面,运行
conda env export--from history
将创建
environment.yml
,使用
python=3.8
numpy
,从而跨平台工作


答案改编自。

这是一个非常有用的解释。非常感谢。Conda将很好地考虑JavaScript方法,即<代码>包。依赖项和所有子依赖项的
包锁.json
/
纱线.lock
。请参阅@Adam Murphy的答案,了解一个不尝试复制整个环境的较少手动选项:
conda env export——来自历史
。根据我的经验,这通常不会跨平台工作。