Wagtail 6.0a0开发环境搭建遇ImportError:无法导入Query
Wagtail 6.0a0开发环境搭建报错与解决方案
1. 为何Wagtail 6.0a0分支出现ImportError,而5.2a0无此问题?
- Wagtail 6.0a0作为开发分支,已对搜索模块进行重构:
Query模型从wagtail.search.models迁移到了其他模块(如wagtail.search.query),这是版本迭代中的结构调整。 - 你用
wagtail start生成的站点模板,仍保留旧版本的导入语句from wagtail.search.models import Query,但6.0a0分支已移除该位置的Query类,因此触发ImportError。 - 官方5.2a0版本未进行这次重构,
Query模型仍在原路径,所以无异常。
2. 正确搭建Wagtail贡献开发环境的步骤
- 克隆分支并进入源码目录
git clone <你的6.0a0分支仓库地址> cd wagtail - 创建并激活虚拟环境
python -m venv venv # Windows系统 venv\Scripts\activate # macOS/Linux系统 source venv/bin/activate - 安装本地开发依赖
安装可编辑版本的Wagtail及所有开发相关依赖,确保依赖版本符合分支要求:
可查看项目根目录的pip install -e ".[testing,docs,develop]" -Upyproject.toml或setup.cfg确认Django等依赖的版本范围,避免手动指定冲突版本。 - 安装前端依赖
npm ci npm run build - 使用本地分支版本创建Wagtail站点
必须使用当前虚拟环境中安装的本地Wagtail版本执行wagtail start,确保模板适配6.0a0分支:# 将站点创建在源码目录外的独立文件夹 wagtail start my_dev_site ../my_dev_site - 配置站点并运行迁移
注意:不要使用站点自动生成的cd ../my_dev_site # 检查并修正settings.py或其他文件中的旧导入语句: # 将`from wagtail.search.models import Query`替换为新路径,例如`from wagtail.search.query import Query` python manage.py migrate python manage.py runserverrequirements.txt中的旧版本Wagtail指定,我们要依赖本地开发的6.0a0分支版本,可注释掉该文件中的wagtail==5.2a0行。
内容的提问来源于stack exchange,提问作者Badr Fourane
相关产品推荐
相关产品推荐

