Bagaimana cara menghapus / menghapus virtualenv?

485

Saya menciptakan lingkungan dengan perintah berikut: virtualenv venv --distribute

Saya tidak dapat menghapusnya dengan perintah berikut: rmvirtualenv venv- Ini adalah bagian dari virtualenvwrapper sebagaimana disebutkan dalam jawaban di bawah ini untuk virtualenvwrapper

Saya melakukan lspada direktori saya saat ini dan saya masih melihat venv

Satu-satunya cara saya bisa menghapusnya adalah: sudo rm -rf venv

Perhatikan bahwa lingkungan tidak aktif. Saya menjalankan Ubuntu 11.10. Ada ide? Saya sudah mencoba me-reboot sistem saya tetapi tidak berhasil.

sudostack
sumber
13
Hapus saja direktori.
nathancahill
klakson: sudo rmvirtualenv venv bukan perintah yang valid. Tidak yakin mengapa saya pikir reboot akan membantu. Saya cukup baru, jujur ​​saja.
sudostack
24
Catatan yang rmvirtualenvdatang dengan virtualenvwrapper. Anda perlu diinstal untuk membuatnya bekerja.
skytreader
4
Perhatikan bahwa Anda juga dapat menghapus semua paket yang terinstal, tapi tetap lingkungan virtual sendiri jika Anda telah virtualenvwrapper diinstal: $ virtualenv --clear path_to_my_venv. Saya menggunakan ini dari waktu ke waktu untuk memastikan saya tidak memiliki apa pun yang diinstal secara manual, seperti ketergantungan lama tidak lagi masuk requirements.txt.
Taylor Edmiston
1
The sudoseharusnya tidak perlu dalam keadaan normal. Inti dari lingkungan virtual adalah Anda dapat memanipulasinya menggunakan akun pengguna reguler Anda.
tripleee

Jawaban:

421

Itu dia! Tidak ada perintah untuk menghapus lingkungan virtual Anda. Cukup nonaktifkan dan hapus aplikasi artefak Anda dengan menghapusnya secara rekursif.

Perhatikan bahwa ini sama terlepas dari lingkungan virtual apa yang Anda gunakan. virtualenv, venv, Lingkungan Anaconda, pyenv, pipenvsemua didasarkan prinsip yang sama di sini.

Thomas Anthony
sumber
14
Perlu dicatat bahwa jika Anda menggunakan pip untuk menginstal dependensi, Anda mungkin ingin pip membekukan daftar dependensi dan tetap di direktori tingkat atas. Jika nanti Anda memilih untuk menggunakan aplikasi Anda, Anda tidak akan mengalami sedikit masalah.
Thomas Anthony
7
Mengapa ini diterima dan dengan suara sebanyak ini, ketika jawaban yang benar hanya di bawah? Mungkin ini untuk versi yang lebih lama dari virtualenvwarpper
jsbueno
9
@ jsbueno Dia menggunakan virtualenv, bukan virtualenvwrapper (mereka bukan program yang sama). Pada saat itu, virtualenv tidak menyediakan antarmuka untuk pembersihan; Anda harus melakukannya sendiri.
Thomas Anthony
3
Jika Anda telah membuat virtualenv dalam repo git (dan file tidak diabaikan):git clean -dffx
Rex Hardin
172

Hanya untuk menggemakan apa yang sebelumnya dikomentari @skytreader, rmvirtualenvadalah perintah yang diberikan oleh virtualenvwrapper, bukan virtualenv. Mungkin Anda belum virtualenvwrappermenginstal?

Lihat Referensi Perintah VirtualEnvWrapper untuk lebih jelasnya.

Devy
sumber
113

Menggunakan rmvirtualenv

Hapus sebuah lingkungan, di menu $WORKON_HOME.

Sintaksis:

rmvirtualenv ENVNAME

Anda harus menggunakan nonaktifkan sebelum menghapus lingkungan saat ini.

$ rmvirtualenv my_env

Referensi: http://virtualenvwrapper.readthedocs.io/en/latest/command_ref.html

Antoniazzi
sumber
2
bahkan ada tabdukungan penyelesaian untuk ini!
muon
13
Perhatikan bahwa jawaban ini salah karena OP tidak pernah mengatakan bahwa mereka pernahvirtualenvwrapper
KevinDTimm
@KevinDTimm Ya, tetapi bagi kita yang menggunakan virtualenvwrapper, jawaban ini 'lebih tepat' daripada benar!
KhoPhi
73

Anda dapat menghapus semua dependensi dengan menghapus instalan semuanya secara rekursif lalu menghapusnya.

Sunting termasuk komentar Isaac Turner

source venv/bin/activate
pip freeze > requirements.txt
pip uninstall -r requirements.txt -y
deactivate
rm -r venv/
Dawn T Cherian
sumber
2
Saya pikir Anda kehilangan deactivatesebelumrm -r venv/
Isaac Turner
Dan kritis hanya lakukan ini jika Anda tidak berbagi sistem pip! (Kalau tidak, Anda akan menghapus semua paket sistem Anda.)
orome
2
Sebenarnya seharusnya tidak perlu secara terpisah pip uninstalljika Anda menghapus semua paket dengan cara apa pun rm. Melewati stepealso untuk menghindari risiko yang disebutkan dalam komentar sebelumnya.
tripleee
33

Cukup hapus lingkungan virtual dari sistem. Tidak ada perintah khusus untuk itu

rm -rf venv
Naveen Agarwal
sumber
1
Bekerja pada saya. Pastikan untuk menonaktifkan terlebih dahulu jika lingkungan virtual Anda masih berjalan. (env virtual Anda)> nonaktifkan> rm -rf "env virtual Anda"
tthreetorch
Saya menemukan bahwa -fbendera tidak diperlukan. Saya lebih suka menghindari bendera itu jika memungkinkan.
Akan
31

dari dokumen resmi virtualenv https://virtualenv.pypa.io/en/stable/userguide/

Menghapus Lingkungan

Menghapus lingkungan virtual cukup dilakukan dengan menonaktifkannya dan menghapus folder lingkungan dengan semua isinya:

(ENV)$ deactivate
$ rm -r /path/to/ENV
N.Lee
sumber
1
@ Sébastien Tidak, Anda tidak perlu sudoatau hak istimewa serupa kecuali Anda juga menggunakannya untuk mengatur lingkungan di tempat pertama, yang biasanya akan menjadi kesalahan.
tripleee
Tautan dalam jawaban Anda saat ini rusak.
Akan
8

Jika Anda menggunakan pyenv, dimungkinkan untuk menghapus lingkungan virtual Anda:

$ pyenv virtualenv-delete <name>
Christiaan Herrewijn
sumber
6

Perintah berikut ini berfungsi untuk saya.

rm -rf /path/to/virtualenv
Ashiq Imran
sumber
sama di sini, ada efek samping yang diketahui dari melakukan ini? Saya hanya menghapus venvfolder
ajayramesh
Saya tidak mendapatkan efek samping
Ashiq Imran
4

Saya biasa pyenv uninstall my_virt_env_namemenghapus lingkungan virual.

Catatan: Saya menggunakan pyenv-virtualenv yang diinstal melalui skrip instal.

Ole Henrik Skogstrøm
sumber
Ini jelas hanya valid jika Anda gunakan pyenv.
tripleee
3

Jika Anda adalah pengguna Windows dan Anda menggunakan konda untuk mengelola lingkungan di Anaconda prompt, Anda dapat melakukan hal berikut:

Pastikan Anda menonaktifkan lingkungan virtual atau memulai ulang Anaconda Prompt. Gunakan perintah berikut untuk menghapus lingkungan virtual:

$ conda env remove --name $MyEnvironmentName

Atau, Anda dapat pergi ke

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

(itu jalur file default) dan hapus folder secara manual.

CathyQian
sumber
1

jika Anda pengguna windows, maka itu dalam C: \ Users \ your_user_name \ Envs. Anda dapat menghapusnya dari sana.

Coba juga di command prompt rmvirtualenv nama lingkungan.

Saya mencoba dengan command prompt sehingga kata itu dihapus tetapi masih ada. Jadi saya menghapusnya secara manual.

jahmed31
sumber
Sebenarnya ini tidak benar. Lokasi lingkungan virtual sangat tergantung pada di mana Anda menjalankan virtualenvperintah. Misalnya: C:\>virtualenv my_awesome_venvakan membuat lingkungan virtual di C:\my_awesome_venv.
Felix
saya berbicara tentang pembungkus virtual. Kesalahan saya
jahmed31
1

deactivateadalah perintah yang Anda cari. Seperti apa yang telah dikatakan, tidak ada perintah untuk menghapus lingkungan virtual Anda. Cukup nonaktifkan saja!

garrettmac
sumber
Ini tidak menjawab pertanyaan. Anda benar bahwa Anda biasanya tidak perlu menghancurkan virtualenv Anda, tetapi itulah yang tampaknya ditanyakan oleh OP.
tripleee
1

Jika Anda pengguna windows, Anda juga dapat menghapus lingkungan dengan masuk ke: C:/Users/username/Anaconda3/envs Di sini Anda dapat melihat daftar lingkungan virtual dan menghapus yang tidak lagi Anda perlukan.

Shekhar
sumber
0

Anda dapat mengikuti langkah-langkah ini untuk menghapus semua file yang terkait dengan virtualenv dan kemudian instal kembali virtualenv dan menggunakannya

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
sumber
-9

langkah 1: hapus virtualenv virtualenvwrapper dengan menyalin dan menempelkan perintah berikut di bawah ini:

$ sudo pip uninstall virtualenv virtualenvwrapper

langkah 2: pergi ke .bashrc dan hapus semua virtualenv dan virtualenvwrapper

terminal terbuka:

$ sudo nano .bashrc

gulir ke bawah dan Anda akan melihat kode di bawah lalu hapus.

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

selanjutnya, sumber .bashrc:

$ source ~/.bashrc

Langkah FINAL: tanpa terminal / shell pergi ke / home dan temukan .virtualenv(saya lupa namanya jadi jika Anda menemukan mirip .virtualenvatau .venvhanya menghapusnya. Itu akan berhasil.

Ingin Benci
sumber
Tampaknya ini menjawab pertanyaan yang sama sekali berbeda, dan harus disertai dengan peringatan besar. Beberapa saran juga buruk (sumber Anda .bashrclagi tidak berguna, dan bisa memiliki konsekuensi yang tidak diinginkan).
tripleee