删除在 python3 中使用 venv 创建的虚拟环境

remove virtual environment created with venv in python3

如何删除使用

创建的虚拟环境
python3 -m venv <name>

我可以只删除目录吗?

这似乎是一个谷歌搜索应该很容易回答的问题,但我只找到了删除使用 virtualenvpyvenv.

创建的环境的答案

是,删除目录。它是 venv 的可执行文件、模块和库以及 venvs 的所有其他内容的保存位置。

您应该先停用您的环境。不确定不停用是否会导致任何问题,但这是正确的方法。停用后,您可以简单地删除虚拟环境目录。

要停用,只需在虚拟环境树中的任意位置执行 'deactivate' bash 命令。

删除 WINDOWS 中的环境。确保您处于激活环境中:

$ deactivate

这将停用您当前的环境。 现在您可以转到您的文件夹或文件夹所在的目录。手动删除它。完成!

要创建一个新环境,只需从bash:

$ python3 -m venv venv

激活它:

$ source venv/bin/activate

在使用 python3 -m venv . 或其他创建的 venv 项目文件夹中,运行 删除 venv 文件:

rm -r bin include lib lib64 pyvenv.cfg share

如果您仍然在 venv 中,请先使用 source bin/activate、运行 deactivate

但是,根据 this page,应该始终使用 python3 -m venv venv,这样 venv 文件就可以整齐地包含在项目根目录中的单个 venv 文件夹中。这样 Visual Studio 代码 Python 扩展也可以 find/use 它。

没有 built-in 方法可以删除使用 python3 -m venv <name> 创建的 virtualenv。例如,如果您在 /usr/local 中创建了 python3.6 virtualenv,那么您可以使用 Ansible 剧本将其删除,例如:

---
- name: Remove virtualenv
  hosts: all

  vars:
    venv: /usr/local

    virtualenv_files:
      - pyvenv.cfg
      - bin/activate
      - bin/activate.csh
      - bin/activate.fish
      - bin/easy_install
      - bin/easy_install-3.6
      - bin/pip
      - bin/pip3
      - bin/pip3.6
      - bin/python
      - bin/python3
      - bin/python3.6
      - bin/wheel
      - lib/python3.6/site-packages

  tasks:

  - name: Freeze virtualenv
    shell: |
      set -e
      source "{{ venv }}/bin/activate"
      pip3 freeze > /tmp/frozen
    args:
      creates: /tmp/frozen
    register: frozen
    failed_when: false

  - name: Remove site-packages from virtualenv
    when: frozen.rc == '0'
    become: true
    shell: |
      set -e
      source {{ venv }}/bin/activate
      pip3 uninstall -y -r /tmp/frozen

  - name: Remove virtualenv_files
    become: true
    file:
      path: "{{ venv }}/{{ item }}"
      state: absent
    loop: "{{ virtualenv_files }}"