繁体   English   中英

恢复 conda/pip 冻结一致性

[英]Restore conda/pip freeze consistency

到目前为止,我一直在使用 conda 管理我的 Python 环境并使用:

pip freeze > requirements.txt

当需要用于部署目的时。

但我最终做了pip install some_package for some package 我无法用 conda 安装(这显然是一个糟糕的主意),现在pip freeze结果完全无关。

有没有办法可以恢复这种情况,这意味着让pip freeze正确描述当前活动的 conda 环境?

当同时使用 pip 和 conda 时,我建议使用conda env export > environment.yml 这将创建一个 yml 文件,其中包含您正在使用的版本,包括在哪里找到它们以及如何安装它们。

当需要在新机器上安装环境时,可以使用conda env create -f environment.yml

注意:yml 文件还规定了将调用什么环境。 不过,这可以在安装环境之前在文件中手动更改。

我可以解决以下问题: https://github.com/ContinuumIO/anaconda-issues/issues/1429#issuecomment-320117143

主要思想是在执行任何 pip 安装之前在您的 conda 环境中安装 pip,然后在使用之前停用 conda。 详细说明:

第 1 步:停用 conda

conda deactivate

重复直到不再在 conda env 中(提示左侧的括号中没有任何内容)或使用

source deactivate (deprecated but still works)

然后

第 2 步

conda activate your_environment
conda install pip
which pip
=> /home/sunless/miniconda3/bin/conda (global version)
pip freeze
=> still your global packages

第 3 步:再次停用您的环境(与第 1 步相同)

第 4 步

conda activate your_environment
which pip
=> /home/sunless/miniconda3/envs/your_environment/bin/pip (local version)
pip freeze
=> your local packages

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM