如何列出 Linux 中的所有 python 虚拟环境? [复制]

Posted

技术标签:

【中文标题】如何列出 Linux 中的所有 python 虚拟环境? [复制]【英文标题】:How to list all python virtual environments in Linux? [duplicate] 【发布时间】:2017-02-06 07:03:57 【问题描述】:

我在我的 Debian 操作系统中配置了多个 Python 环境。有没有办法列出 Linux 中所有配置的环境?

这与下面评论中指出的可能重复的不同。我的意思是仅使用virtualenv 创建的虚拟环境。

【问题讨论】:

whereis python 给你一个不错的清单 感谢您的回答。但是,这给了我所有不同安装版本的 python,但不是虚拟环境。 您所指的重复问题中的命令lsvirtualenv -l 给了我command not found 定义“python 环境”是什么意思。您是指仅使用virtualenv 创建的虚拟环境吗?这些和其他python安装?不同的python安装(但没有虚拟环境)? AFAIK virtualenv not 不会跟踪您创建的所有环境,因此没有内置方法可以做您想做的事情。 lsvirtualenv 命令是 virtualenvwrapper 程序的一部分,它为 virtualenv 添加了一些功能。您必须使用 find 并查找由 virtualenv 创建的特定文件。 是的,我的意思是只使用virtualenv 创建的虚拟环境。 【参考方案1】:

如果只使用低级的virtualenv ...directory 创建一个virtualenv,那么在某处只有某个目录包含该特定环境。您只能通过在 $HOME 目录(或您可能用于创建 virtualenvs 的任何其他目录列表)上运行 find 来“列出”这些以查找 python 安装。希望遵循一些约定,例如将它们全部存储在~/virtualenvs 中。 (另见Where should virtualenvs be created?)

如果使用virtualenvwrapper,那么如上所述,使用命令lsvirtualenv 列出使用mkvirtualenv 创建的环境。默认情况下,它们都在~/.virtualenvs 中。见https://virtualenvwrapper.readthedocs.io/en/latest/command_ref.html

如果使用conda,您可以使用conda info --envsconda env list 列出通过conda create --name my_env [...] 创建的虚拟环境。见https://conda.io/docs/using/envs.html#list-all-environments

【讨论】:

天哪!谁在没有基本方法来跟踪已创建环境的情况下创建了virtualenv?有谁不希望将所有 gigabyte 创建的 pip 环境保存在 home.virtualenv 子目录下?恕我直言,创建的 virtualenv directory 应该在 $CWD 中创建,并且一个名为 ~/.virtualenvs 的文件(在 home 中)应该跟踪该创建的名称和路径。 @not2qubit 我认为有时做相反的事情是有益的:将所有虚拟环境放在一个公共文件夹中,并且只是一个指向项目文件夹中虚拟环境的链接。这样,如果您有自动备份(例如 Windows 上的 Dropbox 或 OneDrive),则不会不必要地备份虚拟环境文件。这样也可以重用虚拟环境。我什至创建了一个简单的包来使这更容易,到目前为止我很喜欢这种安排。 @np8 是的,你的venvlink 看起来很有前途。

以上是关于如何列出 Linux 中的所有 python 虚拟环境? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

如何列出 nginx 中的所有虚拟主机

如何列出 Python 模块中的所有函数?

如何列出 Python 模块中的所有函数?

我正在通过 python 对 azure 进行身份验证以列出我所有的虚拟机,但我收到了这个错误

Python3:以编程方式列出虚拟环境中所有已安装的包和版本[重复]

如何在 Linux 上递归列出 C 中的目录?