如何解决Pywikibot操作自定义Wikibase时的entity_sources属性错误?
解决 AttributeError: DataSite instance has no attribute 'entity_sources'
以下是几个可行的解决方法:
1. 调整环境变量设置顺序
PYWIKIBOT_DIR必须在导入pywikibot前设置,否则配置无法正确加载。修改代码如下:
import os, sys # 先设置工作目录环境变量 os.environ['PYWIKIBOT_DIR'] = os.getcwd() import pywikibot as pwb pwb.config.register_families_folder(os.getcwd()) site = pwb.Site() # 通过site对象登录,替代直接调用ClientLoginManager site.login() repo = site.data_repository() pg = pwb.ItemPage(repo, 'Q1') pg.get()
2. 明确指定目标站点
如果操作的是维基数据,直接指定站点避免默认配置偏差:
import os, sys os.environ['PYWIKIBOT_DIR'] = os.getcwd() import pywikibot as pwb pwb.config.register_families_folder(os.getcwd()) # 明确指定维基数据站点 site = pwb.Site('wikidata', 'wikidata') site.login() repo = site.data_repository() pg = pwb.ItemPage(repo, 'Q1') pg.get()
3. 更新pywikibot到最新稳定版
该错误多由版本不兼容导致,执行以下命令更新:
pip install --upgrade pywikibot
4. 验证配置文件有效性
检查user-config.py、family文件的格式是否符合当前pywikibot版本要求,确保默认站点配置正确,无语法错误。
内容的提问来源于stack exchange,提问作者pippin
相关产品推荐
相关产品推荐

