宝塔Python项目管理器不支持Django自动识别,必须手动配置WSGI入口(myproject/wsgi.py)、应用入口函数(application)、Python路径(/www/wwwroot/myproject)、Python解释器绝对路径及虚拟环境路径,并执行collectstatic收集静态文件。

宝塔Python项目管理器不自动识别Django,必须手动指定WSGI入口
它不会解析settings.py,也不认manage.py。你填错一个路径或变量名,Nginx就直接返回502。入口文件必须是项目根目录下的myproject/wsgi.py(不是manage.py),应用入口必须填application——这是Django生成的wsgi.py里固定导出的可调用对象,大小写、下划线都不能错。
常见错误现象:AttributeError: 'module' object has no attribute 'application',说明宝塔后台填的函数名和wsgi.py里实际定义的不一致;ModuleNotFoundError: No module named 'myproject',大概率是项目根目录没加进Python路径。
- 在「网站 → 设置 → Python项目」中,“WSGI入口文件”填相对路径:
myproject/wsgi.py - “应用入口函数”填:
application - 在「项目配置」里手动追加Python路径:
/www/wwwroot/myproject(注意不是/www/wwwroot/myproject/myproject)
虚拟环境必须用宝塔面板创建,别手建venv
你在终端执行python3 -m venv venv,极可能调用的是系统Python(比如/usr/bin/python3),而宝塔运行项目时用的是它自己装的Python(如/www/server/python/bin/python3.11)。两个解释器不兼容,包装了也导入失败,权限还容易锁死。
正确做法是完全交给面板处理:在「Python项目管理器 → 创建项目」时勾选【自动创建虚拟环境】,它会用匹配的Python版本生成venv,并自动设好www用户读写权限。
立即学习“Python免费学习笔记(深入)”;
- 不要把本地建好的
venv文件夹拖进宝塔文件管理器 - 不要在终端里手动
source venv/bin/activate后再装包——面板启动服务时根本不会走这一步 - 依赖必须通过面板「依赖管理」上传
requirements.txt安装,或在文本框里逐行填包名
STATIC_ROOT不手动收集,Nginx就找不到CSS/JS
宝塔不管Django的collectstatic,它只负责把请求转发给Gunicorn。如果你没运行过python manage.py collectstatic,STATIC_ROOT目录就是空的,Nginx映射过去自然404。
操作顺序不能乱:先在项目代码里确认STATIC_ROOT = '/www/wwwroot/myproject/staticfiles'(路径需存在且www用户可写),再在宝塔「网站 → 设置 → 静态文件」里添加映射:location /static/ { alias /www/wwwroot/myproject/staticfiles/; }。
- 收集前先确保
/www/wwwroot/myproject/staticfiles目录存在:mkdir -p /www/wwwroot/myproject/staticfiles - 用项目虚拟环境里的Python执行收集:
/www/wwwroot/myproject/venv/bin/python /www/wwwroot/myproject/manage.py collectstatic --noinput - 别漏掉
--noinput,否则卡在确认提示上
Python解释器路径填错,所有包都白装
宝塔「网站 → 设置 → Python项目」里有个“Python版本”下拉菜单,但它默认值常是“系统默认”,实际指向/usr/bin/python3。而你用项目管理器装的Python 3.9其真实路径是/www/server/python/bin/python3.9——这个路径必须手动填进“Python解释器路径”栏,否则pip装的包全在错的环境里。
查路径最稳的方式:进宝塔「软件商店」→ 找到已安装的Python版本 → 点「设置」→ 复制“Python主程序路径”。填完后重启项目,再看gunicorn日志里第一行加载的是哪个python。
- 绝对路径必须完整,不能省略
python3.9后缀 - 虚拟环境路径也要填绝对路径:
/www/wwwroot/myproject/venv,且确保该目录下有bin/activate - 如果用了PostgreSQL或MySQL,
psycopg2-binary或mysqlclient这类C扩展包,得提前在宝塔软件商店装好“Development Tools”


















