列出所有虚拟环境

Posted

技术标签:

【中文标题】列出所有虚拟环境【英文标题】:List all virtualenv 【发布时间】:2011-11-04 22:38:42 【问题描述】:

在 virtualenvwrapper 中,有没有一种简单的方法可以列出我机器上的所有 virtualenv?

(就像 yolk -l 列出当前虚拟环境中的所有 python 包一样?)

澄清: 我的 env 目录中的“ls -la”不算在内。我正在寻找一个 virtualenv 或 virtualenvwrapper 特定的命令。

【问题讨论】:

相关:***.com/a/45386421/127971 【参考方案1】:

您可以使用lsvirtualenv,其中有“long”或“brief”两个选项:

“long”选项是默认选项,它会搜索您可能在此命令周围的任何钩子并执行它,这需要更多时间。

"brief" 只是获取 virtualenvs 的名称并打印它。

简要用法:

$ lsvirtualenv -b

长期使用:

$ lsvirtualenv -l

如果你没有任何钩子,或者甚至不知道我在说什么,就用“brief”。

【讨论】:

【参考方案2】:

列出所有虚拟环境(如果使用 anaconda 发行版):

conda info --envs

希望我的回答对某人有所帮助...

【讨论】:

很好的答案!在我的情况下,lsvirtualenv 未被识别为内部或外部命令。【参考方案3】:

愚蠢的问题。发现有一个

lsvirtualenv

列出所有现有虚拟环境的命令。

【讨论】:

查看命令参考doughellmann.com/docs/virtualenvwrapper/command_ref.html【参考方案4】:

运行workon 不带参数列出可用环境。

【讨论】:

workon(不带参数)是最好的方法!这是 Virtualenvwrapper 的命令。 lsvirtualenv 是 Virtualenv 特有的命令。【参考方案5】:

如果您使用 virtualenv 或 Python 3 内置的 venv,上述答案可能不起作用。

如果您使用的是 Linux,只需 locate activate 脚本,该脚本始终存在于环境中。

locate -b '\activate' | grep "/home"

这将抓取您的主目录中存在的所有 Python 虚拟环境。

对于 Mac 用户,find 也很好用

find $HOME -name "*activate" -type f

See Demo Here

【讨论】:

这应该是最佳答案,因为它可以在 ubuntu 上同时使用:virtualenvvirtualenvwrapper @PeDro 为什么在 Ubuntu 上工作应该成为最佳答案的标准?其他 Linux 发行版上的人呢? Windows 用户呢? 不,不应该。答案提到这适用于Linux。我在 Ubuntu 上对其进行了验证并投了赞成票。接受的答案对两者都不起作用:virtualenv 和 virtualenvwrapper。这个可以。请不要误会 同意,最佳答案,因为灵活性和无需任何设置即可工作。 这适用于 OS X,上面的答案不适用于我 virtualenv【参考方案6】:

对于 conda 创建的环境使用:

conda info --envs  # or 
conda info -e      # or 
conda env list 

对于 virtualenvwrapper 创建的 env 使用:

lsvirtualenv

【讨论】:

【参考方案7】:

如果您是从 Google 来到这里的,试图找到您之前创建的 virtualenv 安装的最终位置,以及为什么没有命令可以找到它,这里是内幕。

virtualenv 的设计存在一个根本缺陷,即无法跟踪它自己创建的环境。有人在创建virtualenv 时脑子不太对劲,没有基本的方法来跟踪已经创建的环境,当然也不适合大多数 pip 要求需要数千兆字节安装的时代和时代,这应该当然进入你的~/home的一些不起眼的.virtualenvs子目录。

IMO,创建的 virtualenv 目录 应该在 $CWD 中创建 并且 一个名为 ~/.virtualenv 的文件(在 home 中)应该保留跟踪该创建的名称和路径。这是使用 Conda/Miniconda3 的一个很好的理由,它似乎可以很好地跟踪这一点。

正如here 的回答,跟踪此问题的唯一方法是安装另一个名为virtualenvwrapper 的软件包。如果你不这样做,你将不得不自己搜索创建的目录。显然,如果您不记得创建它的 name位置,您很可能再也找不到您的虚拟环境...

尝试补救 Windows 中的情况,是将以下函数放入您的 powershell 配置文件中:

# wrap virtualenv.exe and write last argument (presumably 
# your virtualenv name) to the file: $HOME/.virtualenv.
function ven  if( $args.count -eq 0) Get-Content ~/.virtualenv  else virtualenv.exe "$args"; Write-Output ("0 `t1" -f $args[-1],$PWD) | Out-File -Append $HOME/.virtualenv 

# List what's in the file or the directories under ~/.virtualenvs
function lsven  try Get-Content ~/.virtualenv  catch Get-ChildItem ~\.virtualenvs -Directory | Select-Object -Property Name  

警告:这将写入~\.virtualenv...

【讨论】:

非常感谢解释者,因为这是我的确切情况。【参考方案8】:

列出所有虚拟环境

conda env list

输出:

# conda environments:
#
                         D:\Programs\Anaconda3
                         D:\Programs\Anaconda3\envs\notebook
                         D:\Programs\Anaconda3\envs\snakes
                         D:\Programs\Anaconda3\envs\snowflakes
base                  *  D:\Programs\Miniconda3
gluon                    D:\Programs\Miniconda3\envs\gluon

【讨论】:

这将仅列出 conda 环境,而不是 pip 生成的环境。【参考方案9】:

如果使用 Anaconda conda env list

如果在安装pip install virtualenvwrapper后使用Python3 lsvirtualenv

【讨论】:

【参考方案10】:

使用下面的 bash 命令定位系统中的所有虚拟环境。您可以根据需要修改命令以获得所需的格式。

locate --regex "bin/activate"$ | sed 's/bin\/activate$//'

【讨论】:

你怎么知道它属于pip?我可以想到许多应用程序在它们的路径中都有它,甚至没有使用 python。但我想这总比没有好!还有一个使用locate 的答案更好,因为它使用了-b 标志。【参考方案11】:

如果我忘记了如何找到 Django 虚拟环境名称?非常简单,如果您忘记了 Windows 10 操作系统上的 Django 虚拟环境名称,可以从以下位置找到。

c:\Users\Envs

【讨论】:

【参考方案12】:

如果您使用的是 windows 和 conda,在 cmd 中输入 conda info --envs 将显示所有现有的虚拟环境。

【讨论】:

【参考方案13】:

这适用于仅限Windows

如果您尝试查找使用 virtualenv 创建的所有环境 搜索 "activate_this.py""pip-selfcheck.json"

【讨论】:

以上是关于列出所有虚拟环境的主要内容,如果未能解决你的问题,请参考以下文章

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

虚拟环境指令

创建与使用虚拟环境

ceph

conda常用命令

pip命令及虚拟环境的建立