Pywikibot登录本地Wampserver的MediaWiki失败,求配置排查
问题分析与解决步骤
你的核心问题是Pywikibot配置没有指向本地Wamp部署的MediaWiki服务器,同时存在用户名大小写不匹配的问题,导致程序连接到默认的公共MediaWiki站点,找不到你本地创建的用户。
一、错误根源
你当前的user-config.py使用了默认的mediawiki家族,这个家族默认指向维基百科等公共MediaWiki站点,而非你的本地服务器,自然找不到你在本地创建的Melchior用户;另外配置里的用户名是小写melchior,但错误提示里是大写开头的Melchior,大小写不匹配也会触发“用户不存在”的错误。
二、具体修改步骤
1. 创建本地站点的家族配置文件
Pywikibot需要通过家族文件识别本地站点的地址,你需要在Pywikibot安装目录的families文件夹中,新建一个名为local_family.py的文件,内容如下:
from pywikibot import family class Family(family.Family): name = 'local' # 这里的'zh'是你本地MediaWiki安装时选择的语言代码,英文环境填'en' langs = { 'zh': 'localhost', } # 如果你的MediaWiki安装在子目录(比如localhost/wiki),把这里改成'/wiki/w' def scriptpath(self, code): return '/w' # 本地服务器用http协议 def protocol(self, code): return 'http'
2. 修改user-config.py配置
将你的user-config.py替换为以下内容(注意匹配你本地的语言代码和用户名):
# 对应上面创建的家族名称 family = 'local' # 对应家族文件里的语言代码,英文环境填'en' mylang = 'zh' # 用户名要和本地MediaWiki后台创建的完全一致,注意大小写! usernames['local']['zh'] = 'Melchior' password_file = None
3. 验证前提条件
- 确保Wamp服务器处于运行状态,能正常访问你的本地MediaWiki(比如
http://localhost/w/index.php) - 确保本地MediaWiki后台已经创建了大小写完全匹配的用户
Melchior - 验证API地址可访问:打开浏览器访问
http://localhost/w/api.php(或对应子目录的API地址),能看到MediaWiki的API页面即为正常
4. 重新执行登录命令
再次运行:
python pwb.py login.py
按照提示输入密码即可完成登录。
内容的提问来源于stack exchange,提问作者Melchior
相关产品推荐
相关产品推荐

