【问题标题】:Py.test command not found, but library is installed找不到 Py.test 命令,但已安装库
【发布时间】:2016-06-30 04:01:07
【问题描述】:

关于这个话题已经有两篇关于堆栈溢出的帖子了;但是,他们都没有解决或解决我的具体情况。

我已经通过pip install pytest 安装了 pytest。我也可以在 Python 中导入库。

问题是当我尝试在终端中使用py.test 命令时,我得到py.test: command not found

有人知道为什么我无法在终端中使用该命令吗?

编辑:它甚至显示为已安装的包:

$ pip list
cycler (0.9.0)
matplotlib (1.5.1)
numpy (1.10.1)
pip (8.1.0)
py (1.4.31)
pyparsing (2.0.7)
pytest (2.9.0)
python-dateutil (2.4.2)
pytz (2015.7)
scipy (0.17.0)
setuptools (7.0)
six (1.10.0)
tensorflow (0.5.0)
vboxapi (1.0)
wheel (0.26.0)

【问题讨论】:

  • 你在使用 virtualenv 吗?如果是这样,pip(至少是旧版本)将不会安装 py.test 二进制文件,如果它已经安装在系统范围内。您可以改用python -m pytest

标签: terminal command pip pytest


【解决方案1】:

我遇到了同样的问题,python -m pytest 为我工作。

【讨论】:

  • 这与the accepted answer 中的解决方案相同。 在回答已有答案的旧问题时,请确保提供新颖的解决方案或比现有答案更好的解释。
【解决方案2】:

就我而言,我在 ubuntu 20.04 中遇到了类似的问题。以下解决方案对我有用。 原因:Shell 记住以前的版本或以前使用过的Path,因此我们需要强制shell '忘记'旧位置 - 使用-r

hash -r pytest 

然后执行它应该可以正常工作的测试。

【讨论】:

    【解决方案3】:

    我遇到了同样的问题。我已将 Python 安装文件夹权限更改为完全访问权限。然后卸载pytest重新安装。

    pip 卸载 pytest

    【讨论】:

      【解决方案4】:

      使用python -m pytest 将为您工作。

      或者,如果您使用虚拟环境并在 virtualenv 上安装了 pytest,那么您应该在虚拟环境旁边运行 py.test。

      查看此网站是否有用:http://pythontesting.net/framework/pytest/pytest-introduction/

      【讨论】:

      【解决方案5】:

      我可能迟到了,但在探索这个问题时,我注意到这可能是因为 PATH 中不存在 Python 的 Scripts 文件夹。

      对我来说,这是我的脚本文件夹:

      C:\Python38\Scripts\
      

      如果路径有问题,那么运行 pip install pytest 是否实际上应该向您发出警告,并显示它被添加到的路径。

      这应该存在于路径中。如果在 Windows 上,请将环境变量和此位置编辑到 PATH。

      对我来说路径不正确是因为 python 安装不正确

      【讨论】:

        【解决方案6】:

        我通过以下步骤解决了这个问题。 1.首先卸载已有的pytest。 2.检查python版本。 3.然后通过github问题跟踪器验证python版本是否支持pytest版本。 4. 通过 sudo 安装 pytest sudo pip install pytest 5.验证pytest版本和安装是否正确。 点子列表 pytest --version

        6. 使用 pytest test_abc.py 运行任何测试

        【讨论】:

          【解决方案7】:

          我已经在 macOS 上安装了 Homebrew 的 Python 2.7 的最新版本的 pytest,这已修复它:

          pip uninstall pytest
          pip install pytest
          

          【讨论】:

            【解决方案8】:

            我有同样的问题。我安装了 pytest v2.8.3 并且二进制文件 在我的路径上,但名称为 py.test。升级到 v3.0.3 将常规的 pytest 可执行文件添加到路径中。

            【讨论】:

              【解决方案9】:

              你有没有机会在带有自制软件的 Mac 上?

              我遇到了同样的问题,它基本上归结为与安装了 mac os 基础的 python 的权限/冲突。 pip install 不会安装或链接东西到 /usr/local/bin (它发生在 virtualenv 和 pytest 中)。

              1. 我用自制软件 (brew uninstall python) 完全卸载了 python 2.7。
              2. 接下来,我用 homebrew 重新安装了 python 来修复 pip(它不是 /usr/local/bin/pip 中应该链接到 Cellar 的符号链接) -- brew install python
              3. 然后我用 sudo 卸载了 pip -- sudo python -m pip uninstall pip 删除了 root 拥有的 pip
              4. 现在我再次使用 homebrew 卸载并重新安装了 python 以重新安装具有正确权限的 pip brew uninstall python && brew install python
              5. 接下来我修复了python符号链接brew link python
              6. 终于,pip install pytest 成功了! (pip install virtualenv 也是如此)

              我发现这篇文章中所选答案中的信息非常有帮助: https://superuser.com/questions/915810/pip-not-working-on-hombrew-python-2-7-install.

              如果您不在 Mac 上,请原谅噪音...

              【讨论】:

              • 这在 Mac 上对我有用。感谢您的回答。
              • 为我工作 - 谢谢。最近的 disto 升级有很多 Mac 问题