Django runserver启动卡在_strptime导入 删文件后报模块缺失
问题根因
- 启动卡顿和后续报错是连锁问题,核心诱因是文件被占用,和你业务代码有没有直接调用
strptime无关:- 执行
runserver卡在import '_strptime'步骤,是因为你的Python虚拟环境目录、项目目录被安全软件(比如Windows Defender实时扫描)或者OneDrive同步程序锁文件了。从你贴的路径能看到项目存放在OneDrive同步目录下,OneDrive同步文件时会短暂占用文件句柄,杀毒软件扫描py/pyc文件时也会阻塞IO,导致Python导入标准库_strptime时等待时间极长。 - 你手动删除虚拟环境里的
_strptime.py后启动变快,本质是导入时找不到源文件跳过了IO等待的步骤,但_strptime是Python标准库中负责时间字符串解析的核心模块,pandas内部处理时间类型索引、解析时间字符串时会隐式依赖这个模块——你代码里给DataFrame赋值qpc列时,pandas检测到索引是时间类型,自动触发了时间解析逻辑,找不到模块就直接抛出ModuleNotFoundError。
- 执行
解决步骤
- 首先修复被你误删的标准库文件:打开终端激活
dataenv虚拟环境,执行conda install -f python强制重装对应版本的Python,恢复缺失的_strptime.py文件,不要手动删除虚拟环境/Lib目录下的任何官方标准库文件。 - 解决文件锁导致的导入卡顿:
- 把两个路径加入Windows Defender的实时保护排除列表:
C:\Users\mvren\miniconda3\envs\dataenv\、C:\Users\mvren\OneDrive\Documents\Coding\datanz\ - 建议把Django项目从OneDrive同步目录移出,或者暂停OneDrive对代码文件夹的同步,避免同步过程锁文件。
- 把两个路径加入Windows Defender的实时保护排除列表:
- 验证修复:重新执行
python -v manage.py check,观察导入_strptime的步骤是否瞬间完成、无长时间卡顿,之后启动python manage.py runserver即可恢复正常,不需要修改业务代码。
内容的提问来源于stack exchange,提问作者MeL
相关产品推荐
相关产品推荐

