如何删除python的虚拟环境

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何删除python的虚拟环境相关的知识,希望对你有一定的参考价值。

2
进入Python安装目录中的脚本目录,本文目录为C:\Python34\Scripts,截图如下所示:

3
在脚本目录下启动命令行界面,输入命令dir,可以看到脚本目录下包含的工具,其中pip后面将要用到的命令,pip命令可以方便为python安装依赖包。

4
使用pip命令安装虚拟环境,命令为:pip install virtualenv,安装过程截图如下所示,
参考技术A rmvirtualenv [虚拟环境名称]

如何从 python 覆盖单元测试中省略(删除)虚拟环境(venv)?

【中文标题】如何从 python 覆盖单元测试中省略(删除)虚拟环境(venv)?【英文标题】:How to omit (remove) virtual environment (venv) from python coverage unit testing? 【发布时间】:2019-02-07 13:12:46 【问题描述】:

https://coverage.readthedocs.io/en/coverage-4.5.1a/source.html#source

我的报道还包括“venv”文件夹,我想排除它 无论我做什么,即使使用 --include 或 omit 都没有用

coverage run --omit /venv/* tests.py

这会运行测试,但仍会添加“venv”文件夹和依赖项及其覆盖率百分比

当我这样做时

coverage run --include tests.py

只运行测试 - 它说

Nothing to do.

这很烦人...有人可以帮忙吗?

【问题讨论】:

改用coverage run --include tests.py -m tests.py @Radek 你有没有找到解决方案?我已经尝试了以下建议的所有组合,但无法排除 venv 中的 python 文件。 【参考方案1】:

命令:

coverage run --omit /venv/* tests.py

忽略来自/venv 的覆盖(即:venv 已脱离根目录)。

您应该尝试使用相对目录,例如:

coverage run --omit venv tests.py

【讨论】:

我按照你说的做了第二个命令,得到这个错误:Can't find 'main' module in 'venv/include' 它运行了,但报告中仍有 venv,我已删除 .coverage 文件并再次运行命令,但报告中仍然没有运气 venv。 抱歉,我使用pytest-cov 运行我的覆盖率测试。 已安装 pytest-cov,运行它以查看报告的命令是什么 - py.test --cov=myproj tests/ - 我的项目中没有任何文件夹 - 那么如何那个样子? 找到它,同样的问题,就像其他覆盖一样 - 它使用 .coveragerc 文件,你有 glob - 也通过帮助尝试了一切 - 不起作用 - 我在项目目录中没有文件夹只有 venv ,如果我将该文件 glob [run] omit 放在它说无法从文件中读取的文件中,我不知道如何使其工作,命令或文件 glob - 没有任何作用。感谢您的帮助【参考方案2】:

--omit 选项的帮助文本显示为 (documentation)

--omit=PAT1,PAT2,...  Omit files whose paths match one of these patterns.
                      Accepts shell-style wildcards, which must be quoted.

如果不引用通配符,它​​将无法工作,因为 bash 在将参数列表传递给覆盖二进制文件之前会扩展通配符。使用单引号来避免 bash 通配符扩展。

在不从 venv/* 中的任何文件中获取覆盖率的情况下运行我的测试:

$ coverage run --omit 'venv/*' -m unittest tests/*.py && coverage report -m
........
----------------------------------------------------------------------
Ran 8 tests in 0.023s

OK
Name                      Stmts   Miss  Cover   Missing
-------------------------------------------------------
ruterstop.py                 84      8    90%   177, 188, 191-197, 207
tests/test_ruterstop.py     108      0   100%
-------------------------------------------------------
TOTAL                       192      8    96%

如果您通常使用纯 python -m unittest 来运行测试,您当然也可以省略测试目标参数。

$ coverage run --omit 'venv/*' -m unittest
$ coverage report -m

【讨论】:

【参考方案3】:

* 用于/venv/,它将消除您虚拟环境中的所有文件。

coverage run tests.py && coverage report --omit=*/venv/*

【讨论】:

【参考方案4】:

对于那些不想在每次执行coverage 时传递--omit 的人,您可以在.coveragercpyproject.toml 中定义以下内容。 .coveragerc 的示例:

# .coveragerc file content
[run]
omit = [
  .venv/*
  tests/*
]

pyproject.toml 的示例:

# pyproject.toml file content
[tool.coverage.run]
omit = [
    "tests/*",
    ".venv/*",
]

【讨论】:

以上是关于如何删除python的虚拟环境的主要内容,如果未能解决你的问题,请参考以下文章

如何删除python的虚拟环境?

如何删除python的虚拟环境

如何删除python的虚拟环境

conda常用命令之–虚拟环境管理(教你如何创建激活重命名删除虚拟环境)

python命令行创建虚拟环境

Python学习笔记