BSD 13.2环境下Django启动报错:No module named '_sqlite3'
解决BSD 13.2下Python 3.9缺失
_sqlite3模块的问题 1. 安装sqlite3开发依赖
BSD 13.2默认未包含sqlite3的开发文件,先通过pkg安装:
pkg install sqlite3
该包包含编译Python所需的sqlite3头文件与库文件。
2. 重新编译Python 3.9.17
系统自带的Python大概率编译时未启用sqlite3支持,需重新编译:
- 拉取Python 3.9.17源码:
fetch https://www.python.org/ftp/python/3.9.17/Python-3.9.17.tgz tar zxf Python-3.9.17.tgz cd Python-3.9.17 - 配置编译参数(默认会自动检测/usr/local下的sqlite3):
./configure --prefix=/usr/local --enable-shared - 编译并安装:
编译过程中若检测到sqlite3,会自动生成make make install_sqlite3.so模块。
3. 验证修复效果
新开终端(或执行source ~/.cshrc刷新环境),运行:
python3 -c "import sqlite3; print('OK')"
输出OK即表示模块加载正常。
4. 重建虚拟环境(可选)
若之前的venv基于旧Python创建,建议删除后重新搭建:
# 替换为你的虚拟环境目录名 rm -rf my_django_env python3 -m venv my_django_env source my_django_env/bin/activate.csh pip install django==4.2.2
之后执行python manage.py runserver即可正常启动Django服务。
⚠️ 注意:不要用pip安装sqlite3包,该包是第三方纯Python实现,并非Django依赖的官方C扩展模块_sqlite3。
内容的提问来源于stack exchange,提问作者lost in japan
相关产品推荐
相关产品推荐

