如何列出使用 venv 创建的所有虚拟环境?

Jac*_*din 6 python python-venv

有人刚刚问我如何列出所有使用venv.

我只能想到搜索pyvenv.cfg文件来找到它们。就像是:

from pathlib import Path

venv_list = [str(p.parent) for p in Path.home().rglob('pyvenv.cfg')]
Run Code Online (Sandbox Code Playgroud)

这可能包括一些误报。有没有更好的方法来列出所有用 创build 的虚拟环境venv

注意:问题是关于venv具体的,而不是Anaconda、virtualenv 等。

JL *_*ret 5

在 Linux/macOS 上,这应该得到大部分

find ~ -d -name "site-packages" 2>/dev/null

在你家下寻找名为“site-packages”的目录,这是 venv放置 pip 安装的东西的地方。/dev/null 位减少了您无权查看的事情的闲聊。

或者您可以查看特定预期文件的细节。例如,activate具有nondestructive作为内容。然后你需要寻找一个模式而不是匹配 venv 但不是 anaconda 和其余的。

find ~ -type f -name "activate" -exec egrep -l nondestructive /dev/null {} \; 2>/dev/null