安装

时间:2018-09-30 16:20:35

标签: python code-coverage

我运行了命令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:

3 个答案:

答案 0 :(得分:2)

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

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

此外,您可以从source $directory/bin/activateMacPorts安装python3.7并将其激活为默认python。对于许多库,您也可以使用这些程序包管理器进行安装。

答案 1 :(得分:1)

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

答案 2 :(得分:0)

在使用mingw64(适用于Windows的bash)外壳程序时,在运行pip install coverage的Windows上遇到此问题。 Pip检测到Linux环境,未包含Windows所需的.exe。

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