Comment supprimer / supprimer un virtualenv?

485

J'ai créé un environnement avec la commande suivante: virtualenv venv --distribute

Je ne peux pas le supprimer avec la commande suivante: rmvirtualenv venv- Cela fait partie de virtualenvwrapper comme mentionné dans la réponse ci-dessous pour virtualenvwrapper

Je fais un lssur mon répertoire actuel et je vois toujours venv

La seule façon dont je peux le supprimer semble être: sudo rm -rf venv

Notez que l'environnement n'est pas actif. J'utilise Ubuntu 11.10. Des idées? J'ai essayé de redémarrer mon système en vain.

wulymammoth
la source
13
Supprimez simplement le répertoire.
nathancahill
honk: sudo rmvirtualenv venv n'est pas une commande valide. Je ne sais pas pourquoi je pensais qu'un redémarrage aiderait. Je suis assez nouveau, pour être honnête.
wulymammoth
24
Notez que cela rmvirtualenvvient avec virtualenvwrapper. Vous avez besoin de cela installé pour le faire fonctionner.
skytreader
4
Notez que vous pouvez également supprimer tous les paquets installés, mais gardez l'environnement virtuel lui - même si vous avez virtualenvwrapper installé: $ virtualenv --clear path_to_my_venv. Je l'utilise de temps en temps pour m'assurer que je n'ai rien installé manuellement, comme une ancienne dépendance qui n'est plus dans requirements.txt.
Taylor Edmiston
1
Le sudone devrait pas être nécessaire dans des circonstances normales. L'intérêt d'un environnement virtuel est que vous pouvez le manipuler à l'aide de votre compte utilisateur normal.
tripleee

Réponses:

421

C'est ça! Il n'y a pas de commande pour supprimer votre environnement virtuel. Désactivez-le simplement et débarrassez votre application de ses artefacts en le supprimant récursivement.

Notez que c'est la même chose quel que soit le type d'environnement virtuel que vous utilisez. virtualenv, venvEnvironnement Anaconda,pyenv , pipenvsont toutes basées sur le même principe ici.

Thomas Anthony
la source
14
Il convient de noter que si vous utilisez pip pour installer des dépendances, vous souhaiterez peut-être geler une liste de dépendances et conserver le répertoire de niveau supérieur. Si vous choisissez par la suite de déployer votre application, vous n'aurez aucun problème.
Thomas Anthony
7
Pourquoi est-ce accepté et avec autant de votes, alors que la bonne réponse est juste en dessous? Peut-être que c'était pour une ancienne version de virtualenvwarpper
jsbueno
9
@jsbueno Il utilisait virtualenv, pas virtualenvwrapper (ce n'est pas le même programme). À l'époque, virtualenv ne fournissait aucune interface pour le nettoyage; vous deviez le faire vous-même.
Thomas Anthony
3
Si vous avez créé un virtualenv dans un dépôt git (et que les fichiers ne sont pas ignorés):git clean -dffx
Rex Hardin
172

Pour faire écho à ce que @skytreader avait précédemment commenté, rmvirtualenvest une commande fournie par virtualenvwrapper, non virtualenv. Peut-être que vous ne l'avez pas virtualenvwrapperinstallé?

Voir Référence des commandes VirtualEnvWrapper pour plus de détails.

Devy
la source
113

Utilisation rmvirtualenv

Supprimez un environnement, dans le $WORKON_HOME.

Syntaxe:

rmvirtualenv ENVNAME

Vous devez utiliser désactiver avant de supprimer l'environnement actuel.

$ rmvirtualenv my_env

Référence: http://virtualenvwrapper.readthedocs.io/en/latest/command_ref.html

Antoniazzi
la source
2
il y a même un tabsupport d'achèvement pour cela!
muon
13
Notez que cette réponse est fausse car l'OP n'a jamais dit qu'ils l'avaient faitvirtualenvwrapper
KevinDTimm
@KevinDTimm Oui, mais pour ceux d'entre nous avec virtualenvwrapper, cette réponse est "plus juste" que juste!
KhoPhi
73

Vous pouvez supprimer toutes les dépendances en les désinstallant récursivement, puis en supprimant le venv.

Modifier avec commentaire d'Isaac Turner

source venv/bin/activate
pip freeze > requirements.txt
pip uninstall -r requirements.txt -y
deactivate
rm -r venv/
Dawn T Cherian
la source
2
Je pense qu'il vous manque un deactivateavant lerm -r venv/
Isaac Turner
Et surtout, ne faites cela que si vous ne partagez pas le système pip! (Sinon, vous allez désinstaller tous vos packages système.)
orome
2
En fait, il ne devrait pas être nécessaire de les séparer pip uninstallsi vous supprimez tous les packages de rmtoute façon. Ignorer cette étape évite également le risque indiqué dans le commentaire précédent.
tripleee
33

Supprimez simplement l'environnement virtuel du système, il n'y a pas de commande spéciale pour cela

rm -rf venv
Naveen Agarwal
la source
1
Fonctionne sur moi. Assurez-vous de désactiver d'abord si votre environnement virtuel est toujours en cours d'exécution. (votre environnement virtuel)> désactiver> rm -rf "votre environnement virtuel"
tthreetorch
Je trouve que le -fdrapeau n'est pas nécessaire. Je préfère éviter ce drapeau lorsque cela est possible.
Will
31

extrait du document officiel de virtualenv https://virtualenv.pypa.io/en/stable/userguide/

Suppression d'un environnement

La suppression d'un environnement virtuel se fait simplement en le désactivant et en supprimant le dossier environnement avec tout son contenu:

(ENV)$ deactivate
$ rm -r /path/to/ENV
N.Lee
la source
1
@ Sébastien Non, vous ne devriez pas avoir besoin de sudoprivilèges similaires, sauf si vous les avez également utilisés pour configurer l'environnement en premier lieu, ce qui serait généralement une erreur.
tripleee
Le lien dans votre réponse est actuellement rompu.
Will
9

Si vous utilisez pyenv, il est possible de supprimer votre environnement virtuel:

$ pyenv virtualenv-delete <name>
Christiaan Herrewijn
la source
6

La commande suivante fonctionne pour moi.

rm -rf /path/to/virtualenv
Ashiq Imran
la source
même ici, des effets secondaires connus de faire cela? Je viens de supprimer le venvdossier
ajayramesh
Je n'ai eu aucun effet secondaire
Ashiq Imran
4

J'avais l'habitude pyenv uninstall my_virt_env_namede supprimer l'environnement viral.

Remarque: j'utilise pyenv-virtualenv installé via le script d'installation.

Ole Henrik Skogstrøm
la source
Ceci n'est évidemment valable que si vous utilisez pyenv.
tripleee
3

Si vous êtes un utilisateur Windows et que vous utilisez conda pour gérer l'environnement dans l'invite Anaconda, vous pouvez effectuer les opérations suivantes:

Assurez-vous de désactiver l'environnement virtuel ou de redémarrer Anaconda Prompt. Utilisez la commande suivante pour supprimer l'environnement virtuel:

$ conda env remove --name $MyEnvironmentName

Vous pouvez également accéder au

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

(c'est le chemin du fichier par défaut) et supprimez le dossier manuellement.

CathyQian
la source
1

si vous êtes un utilisateur Windows, il se trouve dans C: \ Users \ your_user_name \ Envs. Vous pouvez le supprimer à partir de là.

Essayez également à l'invite de commande le nom de l'environnement rmvirtualenv.

J'ai essayé avec l'invite de commande donc il a dit supprimé mais il existait toujours. Je le supprime donc manuellement.

jahmed31
la source
En fait, ce n'est pas vrai. L'emplacement de l'environnement virtuel dépend vraiment de l'endroit où vous exécutez la virtualenvcommande. Par exemple: C:\>virtualenv my_awesome_venvcréera l'environnement virtuel dans C:\my_awesome_venv.
Felix
je parlais du virtualwrapper. Mon erreur
jahmed31
1

deactivateest la commande que vous recherchez. Comme ce qui a déjà été dit, il n'y a pas de commande pour supprimer votre environnement virtuel. Désactivez-le simplement!

Garrettmac
la source
Cela ne répond pas à la question. Vous avez raison de dire que vous n'avez généralement pas besoin de détruire votre virtualenv, mais c'est ce que l'OP semble demander.
tripleee
1

Si vous êtes un utilisateur Windows, vous pouvez également supprimer l'environnement en allant à: C:/Users/username/Anaconda3/envs Ici, vous pouvez voir une liste d'environnement virtuel et supprimer celui dont vous n'avez plus besoin.

Shekhar
la source
0

Vous pouvez suivre ces étapes pour supprimer tous les fichiers associés à virtualenv puis réinstaller le virtualenv et l'utiliser

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}
Khushhalm
la source
-9

étape 1: supprimez virtualenv virtualenvwrapper en copiant et collez la commande suivante ci-dessous:

$ sudo pip uninstall virtualenv virtualenvwrapper

étape 2: accédez à .bashrc et supprimez tous les virtualenv et virtualenvwrapper

terminal ouvert:

$ sudo nano .bashrc

faites défiler vers le bas et vous verrez le code ci-dessous puis supprimez-le.

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

ensuite, sourcez le .bashrc:

$ source ~/.bashrc

ÉTAPES FINALES: sans terminal / shell, allez dans / home et trouvez .virtualenv(j'ai oublié le nom, donc si votre recherche est similaire à .virtualenvou .venvsimplement le supprimer. Cela fonctionnera.

Wanz Hated
la source
Cela semble répondre à une question complètement différente, et devrait venir avec un énorme avertissement. Certains conseils sont également médiocres (se procurer votre .bashrcnouveau ne fait rien d'utile et pourrait avoir des conséquences indésirables).
tripleee