You need to enable JavaScript to run this app. Python3.6运行Django1.11.10应用时出现ProhibitNullCharactersValidator导入报错
优惠活动
大模型
产品
解决方案
定价
更多

Python3.6运行Django1.11.10应用时出现ProhibitNullCharactersValidator导入报错

问题根因
  • 本次报错属于典型的依赖版本错配,与业务代码逻辑无关。
  • 完整触发逻辑:
    1. ProhibitNullCharactersValidator 是Django 2.0版本才新增的内置校验类,你当前固定使用的Django 1.11.10版本中不存在该类,无法被直接导入。
    2. 你项目中的djangorestframework-datatables==0.4.0 依赖DRF(djangorestframework)包,但requirements.txt中未固定DRF的版本,pip安装时会自动拉取适配高版本Django的最新DRF发行版。
    3. 最新版DRF源码中直接硬导入了上述仅高版本Django才存在的ProhibitNullCharactersValidator,最终在导入链路触发连锁ImportError。
解决步骤
  • 卸载虚拟环境中当前安装的不兼容高版本DRF:
    执行命令:pip uninstall djangorestframework -y
  • 安装与Django 1.11完全兼容的DRF固定版本:
    适配版本为djangorestframework==3.9.4(该版本是最后一个正式支持Django 1.11的DRF发行版),执行安装命令:
    pip install djangorestframework==3.9.4
  • 将固定版本补入项目requirements.txt,避免后续重建环境时再次触发自动升级拉取不兼容版本的问题,补入内容:
    djangorestframework==3.9.4
    
  • 兼容性校验:你当前使用的django-rest-swagger==2.2.0 与上述指定版本DRF完全兼容,无需额外调整版本。

额外提示:原requirements.txt中django-settings-export ==1.2.1 的写法在等号前后存在空格,部分pip版本会出现依赖识别失败问题,建议调整为无空格格式django-settings-export==1.2.1。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.11.08 10:24:06