列出所有virtualenv

Cal*_*eng 123 virtualenv virtualenvwrapper virtualenv-commands

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

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

澄清:我的env目录中的"ls -la"不计算在内.我正在寻找virtualenv或virtualenvwrapper特定的命令.

Ber*_*ire 167

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

"long"选项是默认选项,它会搜索此命令周围的任何挂钩并执行它,这需要更多时间.

"简短"只需取出virtualenvs的名字并打印出来.

简要用法:

$ lsvirtualenv -b
Run Code Online (Sandbox Code Playgroud)

长期使用:

$ lsvirtualenv -l
Run Code Online (Sandbox Code Playgroud)

如果你没有任何钩子,或者甚至不知道我在说什么,只需使用"简短".

  • zsh:找不到命令:lsvirtualenv (22认同)

Cal*_*eng 67

愚蠢的问题.发现有一个

lsvirtualenv
Run Code Online (Sandbox Code Playgroud)

列出所有现有virtualenv的命令.

  • 请参阅命令参考 http://www.doughellmann.com/docs/virtualenvwrapper/command_ref.html (2认同)

ESV*_*ESV 55

在没有参数的情况下运行workon以列出可用环境.


Mic*_*dya 48

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

conda info --envs
Run Code Online (Sandbox Code Playgroud)

希望我的回答有助于某人......

  • 很好的答案!在我的例子中,“lsvirtualenv”不被识别为内部或外部命令。 (4认同)

Bhu*_*ney 30

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

如果您使用的是 Linux,则只需使用 env 中始终存在locateactivate脚本即可。

locate -b '\activate' | grep "/home"
Run Code Online (Sandbox Code Playgroud)

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

在此处查看演示

  • 这应该是最佳答案,因为它可以在 ubuntu 上使用:“virtualenv”和“virtualenvwrapper”。 (4认同)
  • 我在 ubuntu linux 中,未安装“locate”,但“find”命令完成了这项工作 (2认同)

not*_*bit 13

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

其设计virtualenv有一个根本缺陷,即无法跟踪其自己创建的环境。有人在创建时头脑不太正常,virtualenv没有基本的方法来跟踪已创建的环境,并且肯定不适合大多数 pip 要求需要多千兆字节安装的时代和时代,这当然不应该发生进入~/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 } }
Run Code Online (Sandbox Code Playgroud)

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


如果您使用推荐的 venvlink,那么您可以添加以下 powershell 函数,以列出您可用的虚拟环境。

# List what's in the directories of C:\venvs\
#   - installed venvlink, with venvs in C:\venvs\
#   - venvlink uses: ~/.venvlinkrc
function lsven { Get-ChildItem -Path C:\venvs\ -Name }
Run Code Online (Sandbox Code Playgroud)

这肯定可以改进以自动检测venvlink根目录。


Pyg*_*irl 9

对于 conda 创建的 env 使用:

conda info --envs  # or 
conda info -e      # or 
conda env list 
Run Code Online (Sandbox Code Playgroud)

对于 virtualenvwrapper 创建的 env 使用:

lsvirtualenv
Run Code Online (Sandbox Code Playgroud)


Kri*_*ofe 8

列出所有 virtualenv

conda env list
Run Code Online (Sandbox Code Playgroud)

输出:

# 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
Run Code Online (Sandbox Code Playgroud)

  • 这将仅列出 conda 环境,而不列出 pip 生成的环境。 (6认同)

Sea*_*ean 6

如果使用 Anacondaconda env list

lsvirtualenv 如果安装后使用Python3pip install virtualenvwrapper