Answers:
首先,这是一个Python / Anaconda问题,应该在其他堆栈交换子站点中进行询问。
至于问题本身,您可以使用以下命令导出Anaconda环境:
conda env export > environment.yml
并使用以下命令重新创建它:
conda env create -f environment.yml
请注意,正如其他建议一样,您应该使用虚拟环境,该虚拟环境允许您创建与计算机环境分开的特定环境,并更轻松地对其进行管理。
要在Anaconda中创建虚拟环境,您可以使用:
conda create -n yourenvname python=x.x anaconda
您可以使用以下方法激活它:
source activate yourenvname
conda create
或conda env create
共享/重新创建环境时不清楚。您能否进一步详细说明为什么建议conda env create
在这种情况下使用?
conda create
,并conda env create
在这里:groups.google.com/a/continuum.io/forum/#!topic/conda/... 这么说,我觉得你通常可以互换使用。
conda create
vs conda env create
)以及每个选项的不利之处(例如:“ [ conda env create
是用于]使用pip的软件包已安装到其中的环境。 ,这会导致额外的复杂性”:它会增加哪种额外的复杂性?)。
conda env create -f environment.yml
,这会导致错误,因为yml文件中的virtenv名称已经被使用了。将名称更改为您要解决的新virtenv。
conda list --explicit > FILE_NAME
导出当前平台的二进制文件,显然不能在另一个平台上工作。
查看“容器”,例如Docker(https://www.docker.com/what-container),这是虚拟化的一种更轻量级的替代方案。
这将需要一些时间投资,但最终会带来很多好处。
在链接中,我用粗斜体标出了您的特定需求:
将软件打包到标准化单元中,以进行开发,运输和部署
容器映像是一个软件的轻量级独立可执行软件包,包括运行该映像所需的一切:代码,运行时,系统工具,系统库,设置。无论环境如何,容器化软件都可用于基于Linux和Windows的应用程序,并且始终可以运行相同的软件。容器将软件与其周围环境隔离开来,例如,开发环境和登台环境之间的差异,并有助于减少在同一基础架构上运行不同软件的团队之间的冲突。
使用以下命令对当前conda环境进行首次导出环境配置:
conda-env export -n your_env_name > your_env_name.yml
例:
conda-env export -n base> base.yml
运行上述命令后,它们应该是当前目录中的yml配置文件,其中包含conda环境的信息
要使用yml配置文件创建新环境,请运行:
conda-env create -n new_env -f=\path\to\base.yml
例:
conda-env create -n venv -f=base.yml
如果以上操作无效(由于conda本身的各种问题),请尝试以下变体,始终值得一试:
conda-env create --name new_env --file \path\to\base.yml
如果您的程序主要是Python,则可以完全依靠虚拟环境。
创建虚拟环境来隔离您的依赖关系,而不是使用系统库。然后使用虚拟环境工具复制您的环境。
在工作的virtualenv中,使用每个已安装的Python库的版本创建一个文件:
pip freeze > requirements.txt
在新的virtualenv,请pip
安装这些库的版本相同:
pip install -r requirements.txt
这样可以确保在两台计算机上获得相同的lib版本。并且由于VCS跟踪了requirements.txt,因此您始终可以重新创建旧版本代码的环境。
当然,如果您需要数据库,生产Web服务器等,则最终需要执行更多步骤,并且不能依靠virtualenv来确保两个环境都匹配。这就是Docker 介入的地方(请参阅Pieter21的答案)。
anaconda
您问题上的标签。我对此没有经验,但是要小心。我认为anaconda具有管理环境和同时使用anaconda的独特方式,这virtualenv
可能会给您带来麻烦。但是,我认为anaconda应该提供相同的功能。
保存软件包以备将来使用:
conda list --export > package-list.txt
从导出文件重新安装软件包:
conda create -n myenv --file package-list.txt
对基于另一种方法创建环境的现有方法的总结:
克隆环境:
在现有环境中:
$ conda create --name ORIG_ENV_NAME --clone CLONE_ENV_NAME
从同一台计算机上的导出环境文件中:
$ conda create --name ENV_NAME —-file FILE_NAME.yml
$ conda env export > ENV_NAME.yml
$ conda env create -f ENV_NAME.yml```
$ conda create --name NEW_ENV_NAME --clone ORIG_ENV_NAME