不用conda激活conda环境
Activate conda environment without conda
假设我有一个 conda 环境文件夹,但没有 conda 或需求文件。有没有办法在不安装 conda 的情况下使用环境,即激活或提取需求?
基本点导出
我们假设环境是 /path/to/env
,安装了 /path/to/env/bin/python
。如果只需要 Python 包,并且安装了 pip
,那么可能就足够了:
/path/to/env/bin/python -s -m pip list --format=freeze > requirements.txt
注意 -s
标志将 site
模块与用户站点中的包含包隔离(例如,~/.local/lib/pythonX.Y/site-packages/
);如果您出于某种原因想要包含这些内容,请删除标志。
模拟 Conda 激活
更努力地,可以通过
模拟基本激活
- 将环境的
bin/
添加到 PATH;和
- 运行 任何激活 shell 脚本(在
etc/conda/activate.d/
中找到);请注意,有时没有此类脚本并且该文件夹不存在。
然后可以用python -s -m pip list --format=freeze
导出。
在大多数情况下,我不希望这里有什么不同,但为了完整起见我将其包括在内。我们不能排除可能存在通过激活脚本以更改 pip list
输出的方式操纵环境变量的软件包。不是说我见过这个,只是说这是可能的。
假设我有一个 conda 环境文件夹,但没有 conda 或需求文件。有没有办法在不安装 conda 的情况下使用环境,即激活或提取需求?
基本点导出
我们假设环境是 /path/to/env
,安装了 /path/to/env/bin/python
。如果只需要 Python 包,并且安装了 pip
,那么可能就足够了:
/path/to/env/bin/python -s -m pip list --format=freeze > requirements.txt
注意 -s
标志将 site
模块与用户站点中的包含包隔离(例如,~/.local/lib/pythonX.Y/site-packages/
);如果您出于某种原因想要包含这些内容,请删除标志。
模拟 Conda 激活
更努力地,可以通过
模拟基本激活- 将环境的
bin/
添加到 PATH;和 - 运行 任何激活 shell 脚本(在
etc/conda/activate.d/
中找到);请注意,有时没有此类脚本并且该文件夹不存在。
然后可以用python -s -m pip list --format=freeze
导出。
在大多数情况下,我不希望这里有什么不同,但为了完整起见我将其包括在内。我们不能排除可能存在通过激活脚本以更改 pip list
输出的方式操纵环境变量的软件包。不是说我见过这个,只是说这是可能的。