61

我已经在 Debian Linux 下安装了 pytest 2.3.4。默认情况下它在 Python 2.7 下运行,但有时我想在 Python 3.x 下运行它,它也已安装。我似乎找不到任何关于如何做到这一点的说明。

PyPI Trove 分类器显示 Python :: 3 所以推测它一定是可能的。除了py.test somedir/sometest.py, 我 可以 使用python -m pytest ..., 甚至python2.7 -m pytest ..., 但 如果 我 尝试python3 -m pytest ...我 得到

/usr/bin/python3: No module named pytest

4

6 回答 6

69

我找到了解决方法:

  1. python3-pip使用 aptitude安装,它创建了/usr/bin/pip-3.2.
  2. 接下来pip-3.2 install pytest重新安装pytest,但在python3.2路径下。
  3. 然后我就可以使用了python3 -m pytest somedir/sometest.py

不如直接运行 py.test 方便,但可行。

于 2013-01-17T03:36:24.717 回答
27

python3 没有安装模块 py.test 。如果可以,请安装该python3-pytest软件包。

如果你不能这样做,试试这个:

  1. 安装虚拟环境
  2. 为python3创建一个virtualenv
    • virtualenv --python=python3 env_name
  3. 激活虚拟环境
    • source ./env_name/bin/activate
  4. 安装 py.test
    • pip install py.test
  5. 现在使用这个 virtualenv 尝试运行你的测试
于 2013-01-17T03:09:57.487 回答
9

这对我有用:

python3 $(which py.test) ...
于 2017-02-20T14:48:28.257 回答
5

除了上述之外python3 -m pytest,这也可能有效:

env pytest
于 2017-05-22T08:39:43.590 回答
4

使用 pip3 安装它: pip3 install -U pytest

于 2020-01-29T13:32:04.560 回答
0

Debian Linux 有 python3-pytest 包,如果安装了,你可以简单地运行:

/usr/bin/pytest-3
于 2019-10-28T23:54:30.890 回答