安装后未找到Coverage Python库

3

我运行了命令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 check coverage和pip3 show coverage后

pip3 check coverage:

No broken requirements found.

pip3 show coverage

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:

1
请编辑您的问题并显示您的Python版本以及pip3 check coveragepip3 show coveragel的输出。 - stovfl
你的当前目录中是否有名为 coverage.py 的文件? - jwodder
@jwodder yes I do - Tarik Kdiry
4个回答

4

4
你应该检查覆盖范围是指 Python 还是 Python3。很可能它使用 python 来运行你需要的确切工具。macOS 上默认的 Python 版本是 Python 2.7。
另一个选择是通过运行 python3.7 -m venv $directory(其中 $directory 包含虚拟环境文件夹,你可以使用任何你想要的直接路径),创建一个虚拟环境,然后通过运行 source $directory/bin/activate 激活它。这样做后,你将没有问题找到所有你想要的包。我个人更喜欢这种方法,而不是将包安装到系统中。
此外,你可以从 MacPortsHomebrew 安装 Python3.7 并将其激活为默认的 Python。对于许多库,你也可以使用这些软件包管理器来安装它们。

2
当我在使用mingw64(Windows上的bash)shell时,在运行pip install coverage时,遇到了这个问题。Pip检测到了Linux环境,没有包括Windows需要的.exe文件。
为解决此问题,我运行了pip uninstall coverage,然后打开管理员PowerShell提示符并运行pip install coverage

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接