升级至Python 3.12后运行Django服务器出现distutils模块缺失错误
解决Python 3.12升级后Django运行出现ModuleNotFoundError: No module named 'distutils'的问题
问题原因
Python 3.12版本开始不再默认包含distutils模块,该模块被移出了标准库核心。你项目依赖的bootstrapform包在导入过程中需要调用distutils,因此触发了这个错误。
报错信息
File "<frozen importlib._bootstrap>", line 1360, in _find_and_load File "<frozen importlib._bootstrap>", line 1331, in _find_and_load_unlocked File "<frozen importlib._bootstrap>", line 935, in _load_unlocked File "<frozen importlib._bootstrap_external>", line 995, in exec_module File "<frozen importlib._bootstrap>", line 488, in _call_with_frames_removed File "/home/ubuntu/xylamall/venv/lib/python3.12/site-packages/bootstrapform/__init__.py
解决方案
根据你的操作系统选择对应的安装方式:
1. Ubuntu/Debian系统
执行以下命令安装系统级的distutils包:
sudo apt-get update && sudo apt-get install python3-distutils
2. CentOS/RHEL系统
执行以下命令安装系统级的distutils包:
sudo dnf install python3-distutils
3. 虚拟环境兼容方案(通用)
如果使用虚拟环境,也可以通过pip安装setuptools(它包含了distutils的兼容实现):
pip install setuptools
安装完成后,重新启动Django服务器即可解决该问题。
内容的提问来源于stack exchange,提问作者myanmar-girl
相关产品推荐
相关产品推荐

