You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

部署Django应用遇ImportError:无法从typing_extensions导入ParamSpec

部署Django应用时typing_extensions相关ImportError问题解决

未更新或添加任何依赖库的情况下,部署Django Web应用时触发以下错误:

Traceback (most recent call last):
  File "/usr/local/lib/python3.7/site-packages/celery/fixups/django.py", line 118, in django_setup
    django.setup()
  File "/usr/local/lib/python3.7/site-packages/django/__init__.py", line 24, in setup
    apps.populate(settings.INSTALLED_APPS)
  File "/usr/local/lib/python3.7/site-packages/django/apps/registry.py", line 91, in populate
    app_config = AppConfig.create(entry)
  File "/usr/local/lib/python3.7/site-packages/django/apps/config.py", line 116, in create
    mod = import_module(mod_path)
  File "/usr/local/lib/python3.7/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 "/usr/local/lib/python3.7/site-packages/channels/apps.py", line 4, in <module>
    import daphne.server
  File "/usr/local/lib/python3.7/site-packages/daphne/server.py", line 5, in <module>
    from twisted.internet import asyncioreactor  # isort:skip
  File "/usr/local/lib/python3.7/site-packages/twisted/internet/asyncioreactor.py", line 19, in <module>
    from twisted.internet.posixbase import (
  File "/usr/local/lib/python3.7/site-packages/twisted/internet/posixbase.py", line 16, in <module>
    from twisted.internet import error, tcp, udp
  File "/usr/local/lib/python3.7/site-packages/twisted/internet/tcp.py", line 99, in <module>
    from twisted.internet import abstract, address, base, error, fdesc, main
  File "/usr/local/lib/python3.7/site-packages/twisted/internet/base.py", line 34, in <module>
    from twisted.internet import abstract, defer, error, fdesc, main, threads
  File "/usr/local/lib/python3.7/site-packages/twisted/internet/defer.py", line 42, in <module>
    from typing_extensions import Literal, ParamSpec, Protocol
ImportError: cannot import name 'ParamSpec' from 'typing_extensions' (/usr/local/lib/python3.7/site-packages/typing_extensions.py)

问题原因

ParamSpec是typing_extensions 4.0.0版本才新增的类型注解,而Python 3.7环境中安装的typing_extensions版本过低。即使你未手动更新依赖,部署环境中的Twisted库可能被自动升级到了需要ParamSpec的版本(如Twisted 22.10.0及以上),从而引发兼容性冲突。

解决方法

  • 方案一:升级typing_extensions到兼容Python 3.7的最高版本

    1. 查看当前版本:
      pip show typing_extensions
      
    2. 安装适配Python 3.7的版本(typing_extensions 4.7.1是支持Python 3.7的最后一个版本):
      pip install typing_extensions==4.7.1
      
  • 方案二:锁定Twisted到不依赖ParamSpec的旧版本
    安装Twisted 22.10.0之前的版本:

    pip install twisted<22.10.0
    

完成安装后重新启动Django应用,验证错误是否消除。

内容的提问来源于stack exchange,提问作者Stuti Verma

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 06:01:04