未找到覆盖率模块

2024-09-28 22:19:33 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图在虚拟环境中运行django项目的覆盖,但在ModuleNotFoundError方面遇到了一些问题。根据this answer,我已经在虚拟环境中安装了coverage,但是我发现与使用python手动运行文件时相比,在coverage中使用的python interpeter是不同的。你知道吗

运行python manage.py test时,输出为:

(env) λ python manage.py test
C:\Users\omarh\Projects\hive\hive-proj\env\Scripts\python.exe
Creating test database for alias 'default'...
System check identified no issues (0 silenced).

其中第一行是print(sys.executable)的结果

但是,当运行覆盖率为5.0.1的coverage run manage.py test时,我得到:

(env) λ coverage run manage.py test
c:\users\omarh\projects\hive\hive-proj\env\scripts\python3.exe
Traceback (most recent call last):
  File "manage.py", line 22, in <module>
    main()
  File "manage.py", line 18, in main
    execute_from_command_line(sys.argv)
  File "c:\users\omarh\projects\hive\hive-proj\env\lib\site-packages\django\core\management\__init__.py", line 401, in execute_from_command_line
    utility.execute()
  File "c:\users\omarh\projects\hive\hive-proj\env\lib\site-packages\django\core\management\__init__.py", line 395, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "c:\users\omarh\projects\hive\hive-proj\env\lib\site-packages\django\core\management\commands\test.py", line 23, in run_from_argv
    super().run_from_argv(argv)
  File "c:\users\omarh\projects\hive\hive-proj\env\lib\site-packages\django\core\management\base.py", line 320, in run_from_argv
    parser = self.create_parser(argv[0], argv[1])
  File "c:\users\omarh\projects\hive\hive-proj\env\lib\site-packages\django\core\management\base.py", line 294, in create_parser
    self.add_arguments(parser)
  File "c:\users\omarh\projects\hive\hive-proj\env\lib\site-packages\django\core\management\commands\test.py", line 44, in add_arguments
    test_runner_class = get_runner(settings, self.test_runner)
  File "c:\users\omarh\projects\hive\hive-proj\env\lib\site-packages\django\test\utils.py", line 301, in get_runner
    test_runner_class = test_runner_class or settings.TEST_RUNNER
  File "c:\users\omarh\projects\hive\hive-proj\env\lib\site-packages\django\conf\__init__.py", line 76, in __getattr__
    self._setup(name)
  File "c:\users\omarh\projects\hive\hive-proj\env\lib\site-packages\django\conf\__init__.py", line 63, in _setup
    self._wrapped = Settings(settings_module)
  File "c:\users\omarh\projects\hive\hive-proj\env\lib\site-packages\django\conf\__init__.py", line 142, in __init__
    mod = importlib.import_module(self.SETTINGS_MODULE)
  File "c:\users\omarh\projects\hive\hive-proj\env\lib\importlib\__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1006, in _gcd_import
  File "<frozen importlib._bootstrap>", line 983, in _find_and_load
  File "<frozen importlib._bootstrap>", line 953, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "<frozen importlib._bootstrap>", line 1006, in _gcd_import
  File "<frozen importlib._bootstrap>", line 983, in _find_and_load
  File "<frozen importlib._bootstrap>", line 965, in _find_and_load_unlocked
ModuleNotFoundError: No module named 'hive'

在venv中运行pythonpython3的结果给出了一个相同的响应:

Python 3.7.1 (v3.7.1:260ec2c36a, Oct 20 2018, 14:05:16) [MSC v.1915 32 bit (Intel)] on win32

运行python3 manage.py test是成功的。你知道吗

在安装了coverage 3.6的情况下运行也会成功,但是会出现以下错误:

Exception: Couldn't find chunk @ 330

当尝试coverage html

你知道为什么Coverage 5.0会出现这种情况,以及如何修复它吗?或者如何获得Coverage 3.6来构建HTML报告?你知道吗


Tags: djangoinpytestenvlibpackagesline