我的Django项目启动时有问题
2022-09-01 09:22:51,525 [MainThread:25612] [django.utils.autoreload:612] [INFO]- Watching for file changes with StatReloader
Exception in thread django-main-thread:
Traceback (most recent call last):
File "C:\Python37\lib\threading.py", line 926, in _bootstrap_inner
self.run()
File "C:\Python37\lib\threading.py", line 870, in run
self._target(*self._args, **self._kwargs)
File "C:\Python37\lib\site-packages\django\utils\autoreload.py", line 53, in wrapper
fn(*args, **kwargs)
File "C:\Python37\lib\site-packages\django\core\management\commands\runserver.py", line 118, in inner_run
self.check(display_num_errors=True)
File "C:\Python37\lib\site-packages\django\core\management\base.py", line 396, in check
databases=databases,
File "C:\Python37\lib\site-packages\django\core\checks\registry.py", line 70, in run_checks
new_errors = check(app_configs=app_configs, databases=databases)
File "C:\Python37\lib\site-packages\django\core\checks\urls.py", line 13, in check_url_config
return check_resolver(resolver)
File "C:\Python37\lib\site-packages\django\core\checks\urls.py", line 23, in check_resolver
return check_method()
File "C:\Python37\lib\site-packages\django\urls\resolvers.py", line 408, in check
for pattern in self.url_patterns:
File "C:\Python37\lib\site-packages\django\utils\functional.py", line 48, in __get__
res = instance.__dict__[self.name] = self.func(instance)
File "C:\Python37\lib\site-packages\django\urls\resolvers.py", line 589, in url_patterns
patterns = getattr(self.urlconf_module, "urlpatterns", self.urlconf_module)
File "C:\Python37\lib\site-packages\django\utils\functional.py", line 48, in __get__
res = instance.__dict__[self.name] = self.func(instance)
File "C:\Python37\lib\site-packages\django\urls\resolvers.py", line 582, in urlconf_module
return import_module(self.urlconf_name)
File "C:\Python37\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 967, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 677, in _load_unlocked
File "<frozen importlib._bootstrap_external>", line 728, in exec_module
File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
File "D:\code\ido-jira-plug\IdoJiraPlug\IdoJiraPlug\urls.py", line 23, in <module>
path('jira/', include('jira_plug.urls', namespace='jira_plug')),
File "C:\Python37\lib\site-packages\django\urls\conf.py", line 34, in include
urlconf_module = import_module(urlconf_module)
File "C:\Python37\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 967, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 677, in _load_unlocked
File "<frozen importlib._bootstrap_external>", line 728, in exec_module
File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
File "D:\code\ido-jira-plug\IdoJiraPlug\jira_plug\urls.py", line 5, in <module>
from . import api
File "D:\code\ido-jira-plug\IdoJiraPlug\jira_plug\api\__init__.py", line 3, in <module>
from .config import *
File "D:\code\ido-jira-plug\IdoJiraPlug\jira_plug\api\config.py", line 5, in <module>
from jira_plug.utils import JiraAction
File "D:\code\ido-jira-plug\IdoJiraPlug\jira_plug\utils\__init__.py", line 6, in <module>
from .rule import *
File "D:\code\ido-jira-plug\IdoJiraPlug\jira_plug\utils\rule.py", line 4, in <module>
from jira_plug.serializers import RuleConfigInfoSerializer
File "D:\code\ido-jira-plug\IdoJiraPlug\jira_plug\serializers\__init__.py", line 4, in <module>
from .request_serializer import *
File "D:\code\ido-jira-plug\IdoJiraPlug\jira_plug\serializers\request_serializer.py", line 6, in <module>
from jira_plug.utils import JiraAction, get_msg_data, get_rule_detail, handle_message_content
ImportError: cannot import name 'get_rule_detail' from 'jira_plug.utils' (D:\code\ido-jira-plug\IdoJiraPlug\jira_plug\utils\__init__.py)这是我的项目
IdoJiraPlug
- jira_plug
- __init__.py
- api
__init__.py
config.py
- serializers
__init__.py
request_serializer.py
- utils
__init__.py
rule.py
- urls.py
- manage.pyjira_plug.utils.__init__.py
from .rule import *jira_plug.utils.rule.py
...
from jira_plug.serializers import RuleConfigInfoSerializer
...jira_plug.serializers.__init__.py
from .request_serializer import *jira_plug.serializers.request_serializer.py
...
from jira_plug.utils import JiraAction, get_msg_data, get_rule_detail, handle_message_content
...我觉得这是因为rule.py和request_serializer.py相互导入,但我不知道真正的原因。我尝试使用“from jira_plug.utils.rule import get_rule_detail,handle_message_content”,但它仍然存在此错误。
发布于 2022-09-01 04:01:50
在jira_plug应用程序中的utils.py文件中,您没有get_rule_detail类或函数或变量名称。
如果您确信它是存在的-请尝试检查utils.py中的每个字母,您可能会发现错误。
发布于 2022-09-01 07:56:23
我解决这个问题的真正原因是import_module().python循环导入.When django启动,urls.py将由开始按jira_plug.urls.py逐步加载模块。
from . import api,然后python将加载jira_plug.api.__init__.py module.from .config import *,然后python将加载jira_plug.api.config.py module.from jira_plug.utils import JiraAction,然后python将加载jira_plug.utils.__init__.py module.from .rule import *,然后python将加载jira_plug.utils.rule.py module.from jira_plug.serializers import RuleConfigInfoSerializer,然后python将加载jira_plug.serializers.__init__.py module.from .request_serializer import *,然后python将加载from .request_serializer import *6行:from jira_plug.utils import JiraAction, get_msg_data, get_rule_detail, handle_message_content,然后python将加载jira_plug.utils包。第5步、第6步和第7步导致这个错误。A->B-> A,模块A没有加载,B模块也加载A模块,所以解释器导致了"ImportError“。
最好的解决方案是计划抽象公共包。
临时解决方案是修改jira_plug.api.config.py.
# from jira_plug.utils import JiraAction
from jira_plug.utils.call_jira import JiraAction这将导致在第3步之后消失,但这是一个隐藏的危险,我已经抽象了一些常用的方法。这个解决方案只是一个例子!
https://stackoverflow.com/questions/73563591
复制相似问题