Làm cách nào để xóa / xóa virtualenv?


485

Tôi đã tạo một môi trường với lệnh sau: virtualenv venv --distribute

Tôi không thể xóa nó bằng lệnh sau: rmvirtualenv venv- Đây là một phần của virtualenvwrapper như được đề cập trong câu trả lời dưới đây cho virtualenvwrapper

Tôi làm một lstrong thư mục hiện tại của tôi và tôi vẫn thấy venv

Cách duy nhất tôi có thể loại bỏ nó dường như là: sudo rm -rf venv

Lưu ý rằng môi trường không hoạt động. Tôi đang chạy Ubuntu 11.10. Có ý kiến ​​gì không? Tôi đã thử khởi động lại hệ thống của mình nhưng không có kết quả.


13
Chỉ cần xóa thư mục.
nathancahill

honk: sudo rmvirtualenv venv không phải là một lệnh hợp lệ. Không chắc chắn tại sao tôi nghĩ khởi động lại sẽ giúp. Tôi là một người khá mới, thành thật mà nói.
sudostack

24
Lưu ý rằng rmvirtualenvđi kèm với virtualenvwrapper. Bạn cần cài đặt để làm cho nó hoạt động.
skytreader

4
Lưu ý rằng bạn cũng có thể xóa tất cả các gói hiện đang cài đặt, nhưng hãy giữ chính môi trường ảo nếu bạn đã cài đặt virtualenvwrapper : $ virtualenv --clear path_to_my_venv. Thỉnh thoảng tôi sử dụng điều này để đảm bảo rằng tôi không cài đặt thủ công, như một phụ thuộc cũ không còn tồn tại requirements.txt.
Taylor Edmiston

1
Các sudokhông nên cần thiết trong điều kiện bình thường. Toàn bộ quan điểm của một môi trường ảo là bạn có thể thao tác nó bằng tài khoản người dùng thông thường của bạn.
tripleee

Câu trả lời:


421

Đó là nó! Không có lệnh để xóa môi trường ảo của bạn. Đơn giản chỉ cần hủy kích hoạt nó và loại bỏ ứng dụng của bạn về các tạo phẩm của nó bằng cách loại bỏ đệ quy nó.

Lưu ý rằng điều này là giống nhau bất kể bạn đang sử dụng loại môi trường ảo nào. virtualenv, venv, Anaconda môi trường, pyenv, pipenvtất cả đều dựa theo nguyên tắc tương tự ở đây.


14
Điều đáng chú ý là nếu bạn đang sử dụng pip để cài đặt các phụ thuộc, bạn có thể muốn đóng băng danh sách phụ thuộc và giữ ở thư mục cấp cao nhất. Nếu sau này bạn chọn triển khai ứng dụng của mình, bạn sẽ không gặp một chút rắc rối nào.
Thomas Anthony

7
Tại sao điều này được chấp nhận và với nhiều phiếu bầu này, khi câu trả lời đúng chỉ là dưới đây? Có lẽ đây là phiên bản cũ của virtualenvwarpper
jsbueno

9
@jsbueno Anh ấy đã sử dụng virtualenv, không phải virtualenvwrapper (chúng không phải là cùng một chương trình). Vào thời điểm đó, virtualenv không cung cấp giao diện để dọn dẹp; bạn phải tự làm điều đó
Thomas Anthony

3
Nếu bạn đã tạo virtualenv trong git repo (và các tệp không bị bỏ qua):git clean -dffx
Rex Hardin

172

Chỉ để lặp lại những gì @skytreader đã nhận xét trước đây, rmvirtualenvlà một lệnh được cung cấp bởi virtualenvwrapper, không phải virtualenv. Có lẽ bạn chưa virtualenvwrappercài đặt?

Xem VirtualEnvWrapper Tham khảo lệnh để biết thêm chi tiết.


113

Sử dụng rmvirtualenv

Hủy bỏ một môi trường, trong $WORKON_HOME.

Cú pháp:

rmvirtualenv ENVNAME

Bạn phải sử dụng hủy kích hoạt trước khi loại bỏ môi trường hiện tại.

$ rmvirtualenv my_env

Tham khảo: http://virtualenvwrapper.readthedocs.io/en/latest/command_Vf.html


2
thậm chí còn có tabhỗ trợ hoàn thành cho việc này!
muon

13
Lưu ý rằng câu trả lời này là sai vì OP không bao giờ nói rằng họ đã cóvirtualenvwrapper
KevinDTimm

@KevinDTimm Có, nhưng đối với những người trong chúng ta có virtualenvwrapper, câu trả lời này là 'sáng hơn' hơn đúng!
KhoPhi

73

Bạn có thể loại bỏ tất cả các phụ thuộc bằng cách gỡ cài đặt đệ quy tất cả chúng và sau đó xóa venv.

Chỉnh sửa bao gồm bình luận của Isaac Turner

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

2
Tôi nghĩ rằng bạn đang thiếu một deactivatetrướcrm -r venv/
Isaac Turner

cực kỳ chỉ làm điều này nếu bạn không chia sẻ hệ thống pip! (Nếu không, bạn sẽ gỡ cài đặt tất cả các gói hệ thống của mình.)
orome

2
Trên thực tế không cần phải riêng biệt pip uninstallnếu bạn đang loại bỏ tất cả các gói bằng cách rmnào. Bỏ qua bước đó để tránh rủi ro được chỉ ra trong bình luận trước.
tripleee

33

Chỉ cần xóa môi trường ảo khỏi hệ thống. Không có lệnh đặc biệt nào cho nó

rm -rf venv

1
Hoạt động trên tôi. Đảm bảo hủy kích hoạt trước nếu môi trường ảo của bạn vẫn đang chạy. (env ảo của bạn)> hủy kích hoạt> rm -rf "env ảo của bạn"
tthreetorch

Tôi thấy rằng -fcờ là không cần thiết. Tôi thích tránh lá cờ đó khi có thể.
Sẽ

31

từ tài liệu chính thức của virtualenv https://virtualenv.pypa.io/en/urdy/userguide/

Xóa môi trường

Xóa một môi trường ảo được thực hiện đơn giản bằng cách tắt nó và xóa thư mục môi trường với tất cả nội dung của nó:

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

1
@ Sébastien Không, bạn không cần sudohoặc các đặc quyền tương tự trừ khi bạn cũng sử dụng chúng để thiết lập môi trường ở nơi đầu tiên, thường sẽ là một lỗi.
tripleee

Liên kết trong câu trả lời của bạn hiện đang bị hỏng.
Sẽ

8

Nếu bạn đang sử dụng pyenv, có thể xóa môi trường ảo của bạn:

$ pyenv virtualenv-delete <name>

6

Lệnh sau làm việc cho tôi.

rm -rf /path/to/virtualenv

Tương tự ở đây, bất kỳ tác dụng phụ được biết đến của việc này? Tôi vừa xóa venvthư mục
ajayramesh

Tôi không nhận được bất kỳ tác dụng phụ nào
Ashiq Imran

4

Tôi đã sử dụng pyenv uninstall my_virt_env_nameđể xóa môi trường virus.

Lưu ý: Tôi đang sử dụng pyenv-virtualenv được cài đặt thông qua tập lệnh cài đặt.


Điều này rõ ràng chỉ có giá trị nếu bạn sử dụng pyenv.
tripleee

3

Nếu bạn là người dùng Windows và bạn đang sử dụng conda để quản lý môi trường trong dấu nhắc Anaconda, bạn có thể thực hiện như sau:

Đảm bảo bạn hủy kích hoạt môi trường ảo hoặc khởi động lại Anaconda Prompt. Sử dụng lệnh sau để xóa môi trường ảo:

$ conda env remove --name $MyEnvironmentName

Ngoài ra, bạn có thể đi đến

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

(đó là đường dẫn tệp mặc định) và xóa thư mục theo cách thủ công.


1

nếu bạn là người dùng windows, thì đó là C: \ Users \ your_user_name \ Envs. Bạn có thể xóa nó từ đó.

Cũng thử trong tên nhắc môi trường rmvirtualenv.

Tôi đã thử với dấu nhắc lệnh để nó nói bị xóa nhưng nó vẫn tồn tại. Vì vậy, tôi tự xóa nó.


Thật ra điều này không đúng. Vị trí của môi trường ảo thực sự phụ thuộc vào nơi bạn thực hiện virtualenvlệnh. Vd: C:\>virtualenv my_awesome_venvsẽ tạo môi trường ảo trong C:\my_awesome_venv.
Felix

tôi đã nói về virtualwrapper. Sai lầm của tôi
jahmed31

1

deactivatelà lệnh bạn đang tìm kiếm. Giống như những gì đã được nói, không có lệnh xóa môi trường ảo của bạn. Đơn giản chỉ cần tắt nó!


Điều này không trả lời câu hỏi. Bạn đúng là bạn thường không cần phải phá hủy virtualenv của mình, nhưng đó là những gì OP dường như đang hỏi về.
tripleee

1

Nếu bạn là người dùng windows, bạn cũng có thể xóa môi trường bằng cách truy cập: C:/Users/username/Anaconda3/envs Tại đây bạn có thể xem danh sách môi trường ảo và xóa môi trường mà bạn không còn cần nữa.


0

Bạn có thể làm theo các bước sau để xóa tất cả các tệp được liên kết với virtualenv và sau đó cài đặt lại virtualenv và sử dụng nó

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

Bước 1: xóa virtualenv virtualenvwrapper bằng cách sao chép và dán lệnh sau đây:

$ sudo pip uninstall virtualenv virtualenvwrapper

Bước 2: truy cập .bashrc và xóa tất cả virtualenv và virtualenvwrapper

mở thiết bị đầu cuối:

$ sudo nano .bashrc

cuộn xuống và bạn sẽ thấy mã dưới đây sau đó xóa nó.

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

tiếp theo, nguồn .bashrc:

$ source ~/.bashrc

Các bước CUỐI CÙNG: không có terminal / shell đi đến / home và find .virtualenv(Tôi đã quên tên vì vậy nếu tìm thấy của bạn tương tự .virtualenvhoặc .venvchỉ xóa nó. Điều đó sẽ hoạt động.


Điều này dường như để trả lời một câu hỏi hoàn toàn khác, và sẽ đi kèm với một cảnh báo rất lớn. Một số lời khuyên cũng rất kém (tìm nguồn cung ứng .bashrclại của bạn không có gì hữu ích và có thể có những hậu quả không mong muốn).
tripleee
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.