执行django-admin startproject my_site命令报错,请求技术协助
Django启动项目报错:找不到zoneinfo和backports模块
在CMD执行django-admin startproject my_site时触发报错,先后提示找不到zoneinfo和backports模块,已经尝试重装相关组件但问题仍未解决,影响Web开发学习进度。
报错详情
Traceback (most recent call last): File "c:\users\chayan\appdata\local\programs\python\python39-32\lib\site-packages\django\utils\timezone.py", line 10, in <module> import zoneinfo ModuleNotFoundError: No module named 'zoneinfo' During handling of the above exception, another exception occurred: Traceback (most recent call last): File "c:\users\chayan\appdata\local\programs\python\python39-32\lib\runpy.py", line 193, in _run_module_as_main return _run_code(code, main_globals, None, File "c:\users\chayan\appdata\local\programs\python\python39-32\lib\runpy.py", line 86, in _run_code exec(code, run_globals) File "C:\Users\CHAYAN\AppData\Local\Programs\Python\Python39-32\Scripts\django-admin.exe\__main__.py", line 9, in <module> File "c:\users\chayan\appdata\local\programs\python\python39-32\lib\site-packages\django\core\management\__init__.py", line 446, in execute_from_command_line utility.execute() File "c:\users\chayan\appdata\local\programs\python\python39-32\lib\site-packages\django\core\management\__init__.py", line 440, in execute self.fetch_command(subcommand).run_from_argv(self.argv) File "c:\users\chayan\appdata\local\programs\python\python39-32\lib\site-packages\django\core\management\__init__.py", line 279, in fetch_command klass = load_command_class(app_name, subcommand) File "c:\users\chayan\appdata\local\programs\python\python39-32\lib\site-packages\django\core\management\__init__.py", line 48, in load_command_class module = import_module("%s.management.commands.%s" % (app_name, name)) File "c:\users\chayan\appdata\local\programs\python\python39-32\lib\importlib\__init__.py", line 127, in import_module return _bootstrap._gcd_import(name[level:], package, level) File "<frozen importlib._bootstrap>", line 1021, in _gcd_import File "<frozen importlib._bootstrap>", line 998, in _find_and_load File "<frozen importlib._bootstrap>", line 977, in _find_and_load_unlocked File "<frozen importlib._bootstrap>", line 671, in _load_unlocked File "<frozen importlib._bootstrap_external>", line 789, in exec_module File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed File "c:\users\chayan\appdata\local\programs\python\python39-32\lib\site-packages\django\core\management\commands\startproject.py", line 2, in <module> from django.core.management.templates import TemplateCommand File "c:\users\chayan\appdata\local\programs\python\python39-32\lib\site-packages\django\core\management\templates.py", line 16, in <module> from django.template import Context, Engine File "c:\users\chayan\appdata\local\programs\python\python39-32\lib\site-packages\django\template\__init__.py", line 44, in <module> from .engine import Engine File "c:\users\chayan\appdata\local\programs\python\python39-32\lib\site-packages\django\template\engine.py", line7, in <module> from .base import Template File "c:\users\chayan\appdata\local\programs\python\python39-32\lib\site-packages\django\template\base.py", line 59, in <module> from django.utils.formats import localize File "c:\users\chayan\appdata\local\programs\python\python39-32\lib\site-packages\django\utils\formats.py", line 9, in <module> from django.utils import dateformat, numberformat File "c:\users\chayan\appdata\local\programs\python\python39-32\lib\site-packages\django\utils\dateformat.py", line 26, in <module> from django.utils.timezone import ( File "c:\users\chayan\appdata\local\programs\python\python39-32\lib\site-packages\django\utils\timezone.py", line 12, in <module> from backports import zoneinfo ModuleNotFoundError: No module named 'backports'
解决方案
- 问题根源:你使用的是Python 3.9,
zoneinfo是Python 3.10及以上版本才内置的标准库。Django在低版本Python环境下会尝试导入第三方包backports.zoneinfo作为替代,但这个包没有安装,所以触发报错。 - 解决步骤:
- 打开CMD,执行以下命令安装
backports.zoneinfo:pip install backports.zoneinfo - 安装完成后如果仍报错,检查
pip对应的Python版本是否和你当前使用的一致:执行pip --version,查看输出路径是否和报错信息里的Python路径(c:\users\chayan\appdata\local\programs\python\python39-32)匹配,若不匹配,改用python -m pip install backports.zoneinfo来确保安装到正确的环境。 - 若上述方法都无效,建议升级Python到3.10及以上版本,这样可以直接使用标准库的
zoneinfo,无需额外安装第三方包。
- 打开CMD,执行以下命令安装
内容的提问来源于stack exchange,提问作者Chayan Shukla
相关产品推荐
相关产品推荐

