直到现在,我仍在使用conda管理Python环境并使用:
pip freeze > requirements.txt
出于部署目的需要时。
但是我最终对无法使用conda安装的某些软件包进行了pip install some_package
处理(这显然是一个糟糕的主意),现在pip freeze
的结果已经与我激活的任何conda环境完全无关。
有没有一种方法可以恢复这种状况,这意味着让pip freeze
正确地描述了当前处于活动状态的conda环境?
答案 0 :(得分:0)
同时使用点子和conda时,我建议使用conda env export > environment.yml
。这将创建一个yml文件,其中包含您正在使用的版本,包括在哪里可以找到它们以及如何安装它们。
当您需要在新计算机上安装环境时,可以使用conda env create -f environment.yml
注意:yml文件还指示将调用什么环境。但是,可以在安装环境之前在文件中手动更改此设置。
答案 1 :(得分:0)
我可以解决以下问题: https://github.com/ContinuumIO/anaconda-issues/issues/1429#issuecomment-320117143
主要思想是在安装任何pip之前先在conda env中安装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