Python2.7.12执行runserver卡在系统检查环节的解决咨询
Hey,我之前也碰到过一模一样的情况,卡在「performing system checks」这一步真的挺磨人的。结合自己踩过的坑和社区里的经验,给你梳理几个最可能的原因和对应的解决办法:
可能的原因及解决办法
1. 数据库连接配置出错(最常见)
系统检查的核心环节之一就是验证数据库连通性,如果你的settings.py里数据库配置有问题——比如主机地址写错、端口不对、用户名密码不匹配,甚至数据库服务压根没启动——都会导致进程卡在这一步,而且不会给你明显提示。
- 解决步骤:
- 先手动测试数据库连接:写个小脚本快速验证,比如用
MySQLdb(针对MySQL):import MySQLdb try: db = MySQLdb.connect(host='你的数据库主机', user='用户名', passwd='密码', db='数据库名') print("数据库连接成功!") db.close() except Exception as e: print(f"连接失败原因: {str(e)}") - 确认数据库服务已经启动:比如执行
service mysql start(Linux)或者在服务列表里启动MySQL服务(Windows)。 - 仔细核对
settings.py里的DATABASES配置,注意Python2.7里字典键是区分大小写的,别把HOST写成小写的host。
- 先手动测试数据库连接:写个小脚本快速验证,比如用
2. 第三方App的系统检查阻塞
如果你安装了第三方Django应用,有些App自带的system_checks可能存在死循环、请求外部API超时,或者其他阻塞操作,直接拖慢了整个系统检查流程。
- 解决步骤:
- 逐个注释掉
INSTALLED_APPS里的第三方应用,每次注释后重新运行python manage.py runserver,定位到底是哪个App搞的鬼。 - 找到问题App后,去它的GitHub仓库看Issues,或者换一个兼容Python2.7的旧版本试试。
- 逐个注释掉
3. 文件系统权限不足
Django在系统检查时会尝试读写一些文件(比如静态文件目录、日志文件),如果运行runserver的用户没有对应权限,进程可能会静默卡住。
- 解决步骤:
- 检查项目根目录、
MEDIA_ROOT和STATIC_ROOT目录的权限,确保当前用户有读写权限(比如执行chmod -R 755 你的项目目录,注意别给太宽松的权限,安全优先)。 - 如果是在Linux/macOS下,确认有没有用
sudo启动服务器导致权限冲突的情况。
- 检查项目根目录、
4. Python2.7与依赖包的兼容性问题
Django 1.11.x是最后一个支持Python2.7的版本,如果你的Django版本太高,或者其他依赖包(比如requests、celery)用了不支持Python2.7的版本,也可能导致系统检查卡住。
- 解决步骤:
- 先确认Django版本:执行
pip freeze | grep Django,确保是1.11.x系列。 - 检查所有依赖包版本:用
pip freeze导出依赖列表,逐个确认它们支持Python2.7(比如requests的最后一个Python2.7兼容版本是2.27.x)。
- 先确认Django版本:执行
5. 用manage.py check命令定位具体错误
与其让runserver无限卡住,不如先单独执行系统检查命令,它会直接输出所有错误信息:
python manage.py check
这个命令会把系统检查中遇到的所有问题(比如配置错误、缺失的依赖)都列出来,比runserver的静默卡住直观太多,是快速定位问题的首选方法。
内容的提问来源于stack exchange,提问作者Murat Kayhan
相关产品推荐
相关产品推荐

