Как мне удалить / удалить virtualenv?


485

Я создал среду с помощью следующей команды: virtualenv venv --distribute

Я не могу удалить его с помощью следующей команды: rmvirtualenv venv- Это часть virtualenvwrapper, как указано в ответе ниже для virtualenvwrapper.

Я делаю в lsмоем текущем каталоге, и я все еще вижу venv

Единственный способ, которым я могу удалить это, кажется: sudo rm -rf venv

Обратите внимание, что среда не активна. Я использую Ubuntu 11.10. Любые идеи? Я попытался перезагрузить мою систему безрезультатно.


13
Просто удалите каталог.
Натанкахилл

honk: sudo rmvirtualenv venv - недопустимая команда. Не уверен, почему я думал, что перезагрузка поможет. Я довольно новый, если честно.
wulymammoth

24
Обратите внимание, что rmvirtualenvпоставляется с virtualenvwrapper. Вам нужно установить его, чтобы он работал.
Skytreader

4
Обратите внимание , что вы можете также удалить все установленные пакеты, но сохранить виртуальные окружения себя , если вы virtualenvwrapper установили: $ virtualenv --clear path_to_my_venv. Я использую это время от времени, чтобы удостовериться, что у меня нет ничего установленного вручную, как старая зависимость, которой больше нет requirements.txt.
Тейлор Эдмистон

1
Не sudoдолжно быть необходимости в нормальных условиях. Весь смысл виртуальной среды в том, что вы можете манипулировать ею, используя свою обычную учетную запись.
tripleee

Ответы:


421

Это оно! Нет команды для удаления вашей виртуальной среды. Просто деактивируйте его и избавьте свое приложение от его артефактов, рекурсивно удалив его.

Обратите внимание, что это одно и то же независимо от того, какую виртуальную среду вы используете. virtualenv, venv, Окружающая среда Anaconda, pyenv, pipenvвсе они основаны тот же самый принцип здесь.


14
Стоит отметить, что если вы используете pip для установки зависимостей, вы можете захотеть заморозить список зависимостей и сохранить их в каталоге верхнего уровня. Если позже вы решите развернуть свое приложение, у вас не будет никаких проблем.
Томас Энтони

7
Почему это принято и с таким большим количеством голосов, когда правильный ответ только ниже? Возможно, это было для более старой версии virtualenvwarpper
jsbueno

9
@jsbueno Он использовал virtualenv, а не virtualenvwrapper (это не одна и та же программа). В то время virtualenv не предоставляла интерфейс для очистки; ты должен был сделать это сам.
Томас Энтони

3
Если вы создали virtualenv в git-репо (и файлы не игнорируются):git clean -dffx
Рекс Хардин

172

Просто повторить то, что @skytreader ранее прокомментировал, rmvirtualenvэто команда, предоставленная virtualenvwrapper, а не virtualenv. Может быть, вы не virtualenvwrapperустановили?

См. Справочник команд VirtualEnvWrapper для более подробной информации.


113

использование rmvirtualenv

Удалить среду, в $WORKON_HOME.

Синтаксис:

rmvirtualenv ENVNAME

Вы должны использовать деактивировать перед удалением текущей среды.

$ rmvirtualenv my_env

Ссылка: http://virtualenvwrapper.readthedocs.io/en/latest/command_ref.html


2
есть даже tabподдержка завершения для этого!
мюон

13
Обратите внимание, что этот ответ неверен, так как ОП никогда не говорил, что они это сделалиvirtualenvwrapper
KevinDTimm

@KevinDTimm Да, но для тех из нас, у кого есть virtualenvwrapper, этот ответ «правильнее», чем правильно!
Хофи

73

Вы можете удалить все зависимости, рекурсивно удалив их все, а затем удалив venv.

Редактировать, включая комментарий Исаака Тернера

source venv/bin/activate
pip freeze > requirements.txt
pip uninstall -r requirements.txt -y
deactivate
rm -r venv/

2
Я думаю, что вам не хватает deactivateдоrm -r venv/
Исаак Тернер

И критично делать это, только если вы не делитесь системой pip! (В противном случае вы удалите все свои системные пакеты.)
orome

2
На самом деле не должно быть необходимости отдельно, pip uninstallесли вы все rmравно удаляете все пакеты . Пропуск этого шага также позволяет избежать риска, указанного в предыдущем комментарии.
tripleee

33

Просто удалите виртуальную среду из системы. Специальной команды для нее нет

rm -rf venv

1
Работает на меня. Обязательно сначала отключите, если ваша виртуальная среда все еще работает. (ваш виртуальный env)> деактивировать> rm -rf "ваш виртуальный env"
tthreetorch

Я считаю, что -fфлаг не нужен. Я предпочитаю избегать этого флага, когда это возможно.
будет

31

из официального документа virtualenv https://virtualenv.pypa.io/en/stable/userguide/

Удаление окружающей среды

Удаление виртуальной среды выполняется путем ее деактивации и удаления папки среды со всем ее содержимым:

(ENV)$ deactivate
$ rm -r /path/to/ENV

1
@ Sébastien Нет, вам не нужны sudoили аналогичные привилегии, если вы не использовали их в первую очередь для настройки среды, что обычно является ошибкой.
tripleee

Ссылка в вашем ответе в данный момент не работает.
будет


6

Следующая команда работает для меня.

rm -rf /path/to/virtualenv

То же самое здесь, какие-либо известные побочные эффекты этого? Я просто удаляю venvпапку
аджайрамеш

Я не получил никаких побочных эффектов
Ашик Имран

4

Я использовал, pyenv uninstall my_virt_env_nameчтобы удалить виртуальную среду.

Примечание: я использую pyenv-virtualenv, установленный через скрипт установки.


Это очевидно только в том случае, если вы используете pyenv.
tripleee

3

Если вы являетесь пользователем Windows, и вы используете conda для управления средой в приглашении Anaconda, вы можете сделать следующее:

Убедитесь, что вы отключили виртуальную среду или перезапустите Anaconda Prompt. Используйте следующую команду для удаления виртуальной среды:

$ conda env remove --name $MyEnvironmentName

Кроме того, вы можете перейти к

C:\Users\USERNAME\AppData\Local\Continuum\anaconda3\envs\MYENVIRONMENTNAME

(это путь к файлу по умолчанию) и удалите папку вручную.


1

Если вы пользователь Windows, то он находится в C: \ Users \ your_user_name \ Envs. Вы можете удалить его оттуда.

Также попробуйте в командной строке имя среды rmvirtualenv.

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


На самом деле это не так. Расположение виртуальной среды действительно зависит от того, где вы выполняете virtualenvкоманду. Например: C:\>virtualenv my_awesome_venvсоздаст виртуальную среду в C:\my_awesome_venv.
Феликс

я говорил о виртуальной оболочке. Моя ошибка
17

1

deactivateэто команда, которую вы ищете. Как и то, что уже было сказано, нет команды для удаления вашей виртуальной среды. Просто отключите это!


Это не отвечает на вопрос. Вы правы в том, что вам обычно не нужно разрушать свой virtualenv, но именно об этом, кажется, и спрашивает ОП.
tripleee

1

Если вы пользователь Windows, вы также можете удалить среду, перейдя по ссылке: C:/Users/username/Anaconda3/envs Здесь вы можете увидеть список виртуальной среды и удалить ту, которая вам больше не нужна.


0

Вы можете выполнить следующие действия, чтобы удалить все файлы, связанные с virtualenv, а затем снова переустановить virtualenv и использовать его.

cd {python virtualenv folder}

find {broken virtualenv}/ -type l                             ## to list out all the links

deactivate                                           ## deactivate if virtualenv is active

find {broken virtualenv}/ -type l -delete                    ## to delete the broken links

virtualenv {broken virtualenv} --python=python3           ## recreate links to OS's python

workon {broken virtualenv}                       ## activate & workon the fixed virtualenv

pip3 install  ... {other packages required for the project}

-9

Шаг 1: удалите virtualenv virtualenvwrapper, скопировав и вставив следующую команду:

$ sudo pip uninstall virtualenv virtualenvwrapper

шаг 2: зайдите в .bashrc и удалите все virtualenv и virtualenvwrapper

открыть терминал:

$ sudo nano .bashrc

прокрутите вниз, и вы увидите код ниже, а затем удалите его.

# virtualenv and virtualenvwrapper
export WORKON_HOME=$HOME/.virtualenvs
export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3
source /usr/local/bin/virtualenvwrapper.sh

Затем, источник .bashrc:

$ source ~/.bashrc

ЗАКЛЮЧИТЕЛЬНЫЕ шаги: без терминала / оболочки перейдите в / home и найдите .virtualenv(я забыл название, так что если ваш поиск похож .virtualenvили .venvпросто удалите его. Это будет работать.


Похоже, что это ответ на совершенно другой вопрос, и должно прийти с огромным предупреждением. Некоторые из советов также плохие (поиск .bashrcснова не принесет пользы и может иметь нежелательные последствия).
tripleee
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.