Список всех virtualenv

В virtualenvwrapper есть простой способ перечислить все virtualenv на моей машине?

(например, что делает yolk -l для вывода списка всех пакетов python в текущей виртуальной среде?)

ПОЯСНЕНИЕ: "ls -la" в моем каталоге env не считается. Я ищу команду virtualenv или virtualenvwrapper.

14 ответов

Решение

Глупый вопрос. Найдено, что есть

lsvirtualenv

команда, которая перечисляет все существующие virtualenv.

Вы можете использовать lsvirtualenv, в котором у вас есть два варианта "длинный" или "короткий":

Параметр "long" является параметром по умолчанию, он ищет любой хук, который может иметься вокруг этой команды, и выполняет его, что занимает больше времени.

"кратко" просто возьмите имена virtualenvs и напечатайте их.

краткое использование:

$ lsvirtualenv -b

длительное использование:

$ lsvirtualenv -l

если у вас нет хуков, или вы даже не знаете, о чем я говорю, просто используйте "краткое".

Чтобы вывести список всех виртуальных сред (если используется дистрибутив anaconda):

conda info --envs

Надеюсь, мой ответ поможет кому-то...

Если вы используете virtualenv или Python 3 встроенный venv приведенные выше ответы могут не работать.

Если вы используете Linux, просто locate в activate скрипт, который всегда присутствует внутри env.

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

Это захватит все виртуальные среды Python, присутствующие в вашем домашнем каталоге.

См. Демонстрацию здесь

Запустите workon без аргументов, чтобы отобразить список доступных сред.

Для созданного conda env используйте:

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

Для созданного virtualenvwrapper env используйте:

lsvirtualenv

Если вы пришли сюда из Google, пытаясь найти, где закончилась ваша ранее созданная установка virtualenv, и почему нет команды для ее поиска, вот краткое описание.

Дизайн virtualenvимеет фундаментальный недостаток, заключающийся в невозможности отслеживать собственные созданные среды. Кто-то был не в своем уме, когда создавал virtualenvне имея элементарного способа отслеживания уже созданных сред, и, конечно, не подходит для того времени и возраста, когда большинство требований к pip требуют установки с несколькими гигабайтами, что, конечно, не должно входить в некоторые неясные .virtualenvsподкаталог вашего ~ / home.

IMO, созданный каталог virtualenv должен быть создан в $CWD и файл с именем ~/.virtualenv(дома) должен отслеживать имя и путь этого творения. Это чертовски хорошая причина использовать вместо этого 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...

Чтобы перечислить все виртуальные возможности

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

Если вы используете Anaconda conda env list

Если вы используете Python3 lsvirtualenv после того, как вы установили pip install virtualenvwrapper

Используйте команду ниже bash, чтобы найти все виртуальные среды в вашей системе. Вы можете изменить команду в соответствии с вашими потребностями, чтобы получить желаемый формат.

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

Как мне найти имя виртуальной среды Django, если я забыл?. Это очень просто, если вы забыли имя виртуальной среды Django в операционной системе Windows 10, ее можно найти в следующем месте.

c: \ Users <имя> \ Envs <Виртуальные среды>

Лучший ответ, который я могу найти, это проверить установленный каталог python.

Что касается Windows, каталог по умолчанию для virtualenv и pipenv .

      /c/User/<username>/.virtualenv/

Каталог (папка) внутри указанного выше каталога показывает все виртуальные файлы.

Пример -

      ankit@ankit-PC MINGW64 ~/Desktop/study
$ ls /c/Users/ankit/.virtualenvs/
get_env_details*  postactivate*    postmkproject*     postrmvirtualenv*  predeactivate*  premkvirtualenv*  study-OwW1UW_H/
initialize*       postdeactivate*  postmkvirtualenv*  preactivate*       premkproject*   prermvirtualenv*

Study-OwW1UW_H/ — единственный каталог и виртуальная среда в приведенном выше примере.

Это работает только в Windows:

Если вы пытаетесь найти все env, созданные с помощью virtualenv,
ищите "activate_this.py" или "pip-selfcheck.json"

если вы работаете с windows и conda, набирайте conda info --envs in cmd покажет все существующее виртуальное окружение.

Другие вопросы по тегам