为什么 clear Python virtualenv 使用 system Python 库?

Why does clear Python virtualenv use system Python library?

我是自动化领域的新手 (Python + Pytest)。 我尝试在我的 mac 上使用 clear virtualenv,但不知何故 Pytest 运行s 来自本地目录。

所以,我尝试做的是:

  1. 我有一个包含许多 pip 包(pytest、selene 等)的项目。
  2. 我愿意:
$ pip3 install --user virtualenv
$ virtualenv --no-site-packages venv
$ cd venv/
$ source venv/bin/activate
$ echo $PATH
> /Users/.../venv/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/puppetlabs/bin
$ which python
> /Users/.../venv/bin/python
$ which pytest
> /usr/local/bin/pytest

当我尝试 运行 我的 pytest - 它确实如此!但不应该! 如果我从 mac 中删除 Pytest 为:

$ pip3 uninstall pytest

它有效,我得到了清晰的 venv。


Python 3.7.4

这是 pytest 版本 5.2.1,从 /usr/local/lib/python3.7/site-packages/pytest.py

导入

setuptools 注册插件:pytest-reportportal-1.0.4 在 /usr/local/lib/python3.7/site-packages/pytest_reportportal/plugin.py

有人可以说我做错了什么吗?或者它有什么问题? 如何在不依赖本地 PATH 库的情况下创建清晰的 venv?

该行为看起来完全正常,按预期工作。

在您的虚拟环境中安装 pytest,然后它将优先于全局安装的那个,因为它将位于 更高在你的 $PATH 中。如果您不打算使用它,请考虑卸载全局的。