【问题标题】:Coverage python library not found after installing安装后找不到覆盖python库
【发布时间】:2018-09-30 16:20:34
【问题描述】:

我运行了命令 pip install coverage,它似乎已正确安装。

Frodo:Triangle567 tarikkdiry$ pip install coverage
    Collecting coverage
      Using cached https://files.pythonhosted.org/packages/c7/d0/337673c08f5b0cc7ada3dfe2a998ae8a97d482722045644be3d79bbcbe05/coverage-4.5.1-cp37-cp37m-macosx_10_13_x86_64.whl
    Installing collected packages: coverage
    Successfully installed coverage-4.5.1

但是,在对我的一个测试文件运行覆盖后,我收到此错误:

Frodo:Triangle567 tarikkdiry$ coverage run testtriangle.py
Traceback (most recent call last):
  File "/Library/Frameworks/Python.framework/Versions/3.7/bin/coverage", line 7, in <module>
    from coverage.cmdline import main
ModuleNotFoundError: No module named 'coverage.cmdline'; 'coverage' is not a package
Frodo:Triangle567 tarikkdiry$

我已经尝试卸载每个 python 包并重新安装,但没有成功。我在另一台机器上试过了,可以确认测试文件工作正常。

编辑:运行 pip3 检查覆盖率和 pip3 显示覆盖率后

pip3 检查覆盖率:

No broken requirements found.

pip3 显示覆盖率

Name: coverage
Version: 4.5.1
Summary: Code coverage measurement for Python
Home-page: https://bitbucket.org/ned/coveragepy
Author: Ned Batchelder and 100 others
Author-email: ned@nedbatchelder.com
License: Apache 2.0
Location: /Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages
Requires:
Required-by:

【问题讨论】:

标签: python code-coverage


【解决方案1】:

您应该检查覆盖率是指 python 还是 python3。它很可能使用python 来运行您需要的确切工具。 macOS 上的默认 python 版本是 python 2.7。

另一种选择是通过运行python3.7 -m venv $directory(其中$directory 包含一个用于虚拟环境的文件夹,您可以根据需要使用直接路径)来创建一个虚拟环境,然后通过运行source $directory/bin/activate 来激活它。完成此操作后,您可以轻松找到所需的所有软件包。与将软件包安装到系统中相比,我个人更喜欢这种方法。

此外,您可以从MacPortsHomebrew 安装python3.7 并将其激活为默认python。对于许多库,您也可以使用这些包管理器安装它们。

【讨论】:

    【解决方案2】:

    根据 cmets,您的当前工​​作目录中有一个名为 coverage.py 的文件。此文件干扰了coverage 命令从coverage.cmdline 导入的尝试。您需要将文件重命名为其他名称。

    【讨论】:

      【解决方案3】:

      我在 Windows 上使用 mingw64(Windows 的 bash)shell 运行 pip install coverage 时遇到了这个问题。 Pip 检测到 linux 环境,但没有包含 Windows 需要的 .exe。

      为了解决这个问题,我运行了pip uninstall coverage,然后打开了一个管理 PowerShell 提示符并运行了pip install coverage

      【讨论】:

        【解决方案4】:

        什么对我有用:

        python -m coverage run arg1 arg2 arg3
        

        而不是https://coverage.readthedocs.io/en/6.0.2/上提到的内容

        coverage run arg1 arg2 arg3
        

        这类似于 Windows 的这个答案:https://stackoverflow.com/a/36656924/264359

        【讨论】:

          猜你喜欢
          • 2011-04-06
          • 1970-01-01
          • 2015-03-16
          • 1970-01-01
          • 2013-02-15
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多