Plone环境下安装plone.importexport附加组件时buildout报错的问题排查
问题根因
plone.importexport没有作为正式可安装的分发包发布到公共PyPI索引,buildout默认使用的包检索源中不存在这个包的对应元数据,因此会反复触发“找不到索引页”“找不到对应发行版”的报错。- 同列表中的
collective.easyform是社区正式发布到PyPI的成熟Plone插件,可被buildout正常拉取,说明eggs配置块的书写格式没有问题,故障和配置书写格式无关。 - 报错中提到的
Unused options for buildout: 'deprecation-warnings'属于无关提示,只是buildout检测到当前版本不识别的配置参数,不会对实际安装流程造成影响,无需专门处理。
正确安装操作流程
先明确包的来源特性
不要直接把plone.importexport作为egg名写入配置,这个包不存在可远程拉取的正式发行版,需根据实际使用场景选择适配方式:
- 如果仅需要Plone通用的内容导入导出能力,优先选择PyPI上正式发布的同功能替代包,替换掉eggs块里的错误包名,即可被buildout正常识别安装。
- 如果确实需要使用特定的
plone.importexport源码项目,无法通过远程源拉取,需要按本地源码模式配置:- 把项目源码放到buildout根目录下的固定源码路径,比如
src/plone.importexport - 修改buildout.cfg,在
[buildout]配置块中增加源码路径声明:[buildout] develop = src/plone.importexport - 确认源码目录下包含标准的
setup.py或pyproject.toml打包配置文件,重新执行bin/buildout即可,buildout会优先从本地声明的develop路径加载包,不会再触发远程索引找不到的报错。
- 把项目源码放到buildout根目录下的固定源码路径,比如
常见校验排查点
- 写完配置后可执行
bin/buildout annotate,查看当前配置加载的所有包检索源,确认目标包如果需要远程拉取的话,是否在当前可访问的源范围内。 - 如果使用了自定义的包镜像源,要确认镜像是否同步了需要的Plone生态插件,未正式发布的小众包一般不会被公共镜像收录。
注意:所有未在公共PyPI正式发布的源码包,都无法通过直接在eggs块写包名的方式被buildout自动拉取,必须通过本地源码路径、或自定义源码服务器路径的方式显式指定来源。
内容的提问来源于stack exchange,提问作者speranza493
相关产品推荐
相关产品推荐

