列出所有虚拟环境
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 上同时使用:virtualenv
和 virtualenvwrapper
。
@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"
【讨论】:
以上是关于列出所有虚拟环境的主要内容,如果未能解决你的问题,请参考以下文章