174

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

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

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

4

13 回答 13

190

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

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

“简要”只需获取 virtualenvs 名称并打印它。

简要用法:

$ lsvirtualenv -b

长期使用:

$ lsvirtualenv -l

如果您没有任何钩子,或者甚至不知道我在说什么,请使用“简要”。

于 2012-04-23T22:17:37.440 回答
93

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

conda info --envs

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

于 2018-04-04T04:57:01.033 回答
88

愚蠢的问题。发现有一个

lsvirtualenv

列出所有现有 virtualenv 的命令。

于 2011-09-18T18:50:37.903 回答
69

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

于 2012-08-06T16:00:02.083 回答
43

如果您正在使用上述答案中的virtualenvPython 3 或内置的 Python 3,则可能无法正常工作。venv

如果您在 Linux 上,则只是始终存在于环境locate中的activate脚本。

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

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

对于 Mac 用户,find效果也很好

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

在此处查看演示

于 2020-06-27T08:46:19.773 回答
11

对于 conda 创建的环境,请使用:

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

对于 virtualenvwrapper 创建的 env 使用:

lsvirtualenv
于 2019-11-08T18:00:42.937 回答
8

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

的设计virtualenv有一个根本缺陷,即无法跟踪它自己创建的环境。在没有基本方法来跟踪已经创建的环境的情况下创建时,有些人的想法并不完全正确virtualenv,并且肯定不适合大多数 pip 要求需要数 GB 安装的时代和时代,这当然应该去进入~/home的一些不起眼.virtualenvs的子目录。

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

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

一种尝试补救 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} `t{1}" -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...

于 2020-10-25T21:14:55.027 回答
6

列出所有 virtualenvs

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
于 2019-10-21T11:21:00.683 回答
3

如果使用 Anacondaconda env list

lsvirtualenv 如果在安装后使用 Python3pip install virtualenvwrapper

于 2021-08-11T12:53:50.517 回答
1

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

locate --regex "bin/activate"$ | sed 's/bin\/activate$//'
于 2021-02-03T12:41:51.583 回答
0

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

c:\Users<名称>\Envs<虚拟环境>

在此处输入图像描述

于 2020-11-09T02:02:41.823 回答
-1

如果你在 windows 和 conda 上工作,输入conda info --envscmd 将显示所有现有的虚拟环境。

于 2021-11-03T13:22:11.427 回答
-1

仅适用于 Windows

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

于 2019-05-29T12:49:24.577 回答