在django(python)项目上使用PyCharm运行覆盖率测试时,我遇到以下错误:
Traceback (most recent call last):
File "C:\Program Files\JetBrains\PyCharm 2023.1.2\plugins\python\helpers\pycharm\django_test_manage.py", line 6, in <module>
from django.core.management import ManagementUtility
File "C:\Users\User\Project\Code\venv39-master\lib\site-packages\django\core\management\__init__.py", line 13, in <module>
from django.apps import apps
File "C:\Users\User\Project\Code\venv39-master\lib\site-packages\django\apps\__init__.py", line 1, in <module>
from .config import AppConfig
File "C:\Users\User\Project\Code\venv39-master\lib\site-packages\django\apps\config.py", line 7, in <module>
from django.utils.deprecation import RemovedInDjango41Warning
File "C:\Users\User\Project\Code\venv39-master\lib\site-packages\django\utils\deprecation.py", line 5, in <module>
from asgiref.sync import sync_to_async
File "C:\Users\User\Project\Code\venv39-master\lib\site-packages\asgiref\sync.py", line 130, in <module>
class AsyncToSync(Generic[_P, _R]):
File "C:\Program Files\Python39\lib\typing.py", line 277, in inner
return func(*args, **kwds)
File "C:\Program Files\Python39\lib\typing.py", line 997, in __class_getitem__
raise TypeError(
TypeError: Parameters to Generic[...] must all be type variables
个字符
根据我所读到的,这可能是typing和asgiref之间的版本冲突。下面是我使用的版本:
typing_extensions 4.8.0
asgiref 3.7.2
Python 3.9.13
Django 3.2.20
型
更奇怪的是,从终端运行相同的覆盖率测试(使用lib coverage.py),一切正常。
coverage run ./manage.py test -v 3
型
根据Jetbrains的说法,PyCharm IDE使用完全相同的库来覆盖.解决方案是什么?
1条答案
按热度按时间4smxwvx51#
终端中的
coverage
很可能使用了不同版本的Python。尝试coverage debug sys
以获取相关信息的转储。查找如下行:字符串