Pyramid需手动配置WSGI入口:根目录放wsgi.py(含get_app调用)和production.ini,宝塔项目设置中启动文件填wsgi.py、应用入口填application、根目录填绝对路径,依赖须用宝塔Python解释器安装。
不是
宝塔面板
Python 项目管理器原生支持的框架,它不像 Flask 或 Django 那样有默认识别逻辑。直接填
或点“一键部署”大概率会卡在 502、500 或 ModuleNotFoundError。
你得手动搭 WSGI 入口、指定可调用对象、绕过宝塔对
的硬编码假设——因为
默认导出的是
函数(返回 WSGI app),不是顶层变量。
项目结构必须满足 WSGI 要求
宝塔 Python 项目管理器只认「模块:变量」格式的 WSGI 入口(如
),而
的初始化逻辑藏在
里,不能直接当变量用。
你的项目根目录下必须有
或
,且其中
段落定义了
或类似入口
必须有一个
文件(不能叫
),内容类似:
必须放在项目根目录(即
所在层),且路径要能被宝塔解析为相对路径
宝塔后台三项关键字段怎么填
进「Python项目管理器」→ 编辑你的项目 → 「运行设置」页,以下三处填错一个就起不来:
立即学习
“
Python免费学习笔记(深入)
”;
:填
(不是
,也不是
)
:填
(固定写死,大小写敏感,宝塔不支持动态解析
)
:填绝对路径,例如
(必须和
里
的第一个参数路径一致)
别留空,别填
,别填
—— 宝塔不支持模块路径语法,只接受文件名 + 变量名两段式。
Python 3.14.3
微软官方的 Python 扩展,是 VS Code 安装量最高的扩展(209M+)。集成 IntelliSense(通过 Pylance)、调试(通过 Python Debugger)、代码检查、格式化、重构和单元测试等功能。支持 Jupyter Notebook、虚拟环境管理和多 Python 版本切换。
下载
失败时先检查这三件事
依赖比 Flask 重,尤其涉及
、
等底层包,常见失败不是网络问题,而是环境错位:
别用系统
,必须用宝塔安装的 Python 解释器路径,比如:
里如果含
这类带额外依赖的写法,宝塔后台「依赖管理」会静默跳过方括号部分,得拆成两行:
和
若报
(Windows 下)或
(Linux 下),说明缺编译工具链:CentOS 执行
,Ubuntu 执行
日志里出现
怎么办
这不是代码没写
,是宝塔根本没加载到你写的
—— 常见于:
文件权限不对(应为 644,不是 600)
文件编码是 UTF-8 with BOM(Win 下记事本常偷偷加),导致 Python 解析失败,用
或 VS Code 保存为纯 UTF-8
第二个参数(config name)和
文件里
不匹配,比如填了
但实际是
最稳的验证方式:SSH 进服务器,cd 到项目目录,手动执行:
,看是否抛异常。不报错,才说明 WSGI 层通了。
真正的难点不在写代码,而在让宝塔“相信”你给它的那个
是真实可调用的——它不跑
,也不解析
,只机械地做
。
Pyramidapp.pyapplicationPyramidmainPyramidmyapp.wsgi:applicationPyramidmain()production.inidevelopment.ini[app:main]use = egg:myappwsgi.pyapp.py
from pyramid.paster import get_app
application = get_app('/www/wwwroot/my-pyramid/production.ini', 'main')
wsgi.pyproduction.ini启动文件wsgi.pyinit.pyproduction.ini应用入口函数applicationmain()项目根目录/www/wwwroot/my-pyramidwsgi.pyget_app()./wsgi.pymyapp.wsgipip installPyramidzope.interfacevenusianpython3 -m pip install/www/server/python/bin/python3.11 -m pip install pyramidrequirements.txtpyramid[redis]pyramidrediserror: Microsoft Visual C++ 14.0 or greater is requiredgcc: command not foundyum groupinstall "Development Tools"apt install build-essentialAttributeError: 'module' object has no attribute 'application'applicationwsgi.pywsgi.pyvimget_app().ini[app:xxx]'main'[app:pyramid_app]/www/server/python/bin/python3.11 wsgi.pyapplicationmain()INIimport + getattr