在 virtualenvwrapper 中,是否有一种简单的方法可以列出我机器上的所有 virtualenv?
(就像 yolk -l 列出当前虚拟环境中的所有 python 包一样?)
澄清:我的 env 目录中的“ls -la”不计算在内。我正在寻找一个 virtualenv 或 virtualenvwrapper 特定的命令。
在 virtualenvwrapper 中,是否有一种简单的方法可以列出我机器上的所有 virtualenv?
(就像 yolk -l 列出当前虚拟环境中的所有 python 包一样?)
澄清:我的 env 目录中的“ls -la”不计算在内。我正在寻找一个 virtualenv 或 virtualenvwrapper 特定的命令。
您可以使用lsvirtualenv
,其中有两个选项“long”或“brief”:
“long”选项是默认选项,它会搜索您可能在此命令周围使用的任何钩子并执行它,这需要更多时间。
“简要”只需获取 virtualenvs 名称并打印它。
简要用法:
$ lsvirtualenv -b
长期使用:
$ lsvirtualenv -l
如果您没有任何钩子,或者甚至不知道我在说什么,请使用“简要”。
列出所有虚拟环境(如果使用 anaconda 发行版):
conda info --envs
希望我的回答对某人有所帮助...
愚蠢的问题。发现有一个
lsvirtualenv
列出所有现有 virtualenv 的命令。
不带参数运行workon以列出可用环境。
如果您正在使用上述答案中的virtualenv
Python 3 或内置的 Python 3,则可能无法正常工作。venv
如果您在 Linux 上,则只是始终存在于环境locate
中的activate
脚本。
locate -b '\activate' | grep "/home"
这将抓取您的主目录中存在的所有 Python 虚拟环境。
对于 Mac 用户,find
效果也很好
find $HOME -name "*activate" -type f
对于 conda 创建的环境,请使用:
conda info --envs # or
conda info -e # or
conda env list
对于 virtualenvwrapper 创建的 env 使用:
lsvirtualenv
如果您从 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
...
列出所有 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
如果使用 Anacondaconda env list
lsvirtualenv
如果在安装后使用 Python3pip install virtualenvwrapper
使用以下 bash 命令定位系统中的所有虚拟环境。您可以根据需要修改命令以获得所需的格式。
locate --regex "bin/activate"$ | sed 's/bin\/activate$//'
如果你在 windows 和 conda 上工作,输入conda info --envs
cmd 将显示所有现有的虚拟环境。
这仅适用于 Windows:
如果您尝试查找使用 virtualenv 创建的所有环境,请
搜索“activate_this.py”或“pip-selfcheck.json”