win64位下Python2.7安装pyXML问题解决方案

在Windows 64位环境下,安装pyXML 0.84时遇到错误,提示找不到Python 2.7。通过OllyDbg调试发现是注册表问题。解决方法是在注册表中手动添加Python 2.7的InstallPath键值,然后成功安装pyXML。验证安装后,通过Python导入xml模块,显示版本为0.8.4,表明问题已解决。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

sourceforgepyXML0.84只能支持到python2.4,之后没有更新。搜索网上,这位仁兄提供了适合python2.7pyXML0.84 http://www.somethinkodd.com/oddthinking/2009/10/31/windows-installer-for-pyxml-0-8-4-for-python-2-6-x/

 

下载运行,提示“Pythonversion 2.7required, which was not found in the registry。可是我明明已经安装过Python2.7了(我安装的是Active Python 2.7)。

 

没说的,运行OllyDbg打开PyXML-0.8.4.win32-py2.7.exe调试。打开读取注册表的API分别为RegOpenKeyExRegQueryValueEx。定位相关代码并在004028ED设置断点。

首先读取HKEY_LOCAL_MACHINE下的"Software\Python\PythonCore",获得版本2.7,使用sprintfs合成字符串Software\Python\PythonCore\2.7\InstallPath,并读取,读取失败。我打开注册表观察相应键值存在,我意识到win64位下注册表重定位的可能性。HKEY_LOCAL_MACHINE下的Software重定位到Software\Wow6432NodeSoftware\Python\PythonCore存在2.7项,但是2.7下面没有InstallPath项,于是在2.7下新建InstallPath,并设置默认值为C:\Python27(我电脑上python2.7的安装路径)。重新运行PyXML-0.8.4.win32-py2.7.exe,安装成功!

检验PyXML安装

>>>import xml

>>>xml.__version__

'0.8.4'

 

相应汇编码

.text:004028ED; int __cdecl sub_4028ED(int, HKEY hKey, int)

.text:004028EDsub_4028ED      proc near              ; CODE XREF: .text:00402BDBp

.text:004028ED                                       ;.text:00402BF2p

.text:004028ED

.text:004028EDcbData          = dword ptr -110h

.text:004028EDvar_10C         = dword ptr -10Ch

.text:004028EDvar_108         = dword ptr -108h

.text:004028EDhWnd            = dword ptr -104h

.text:004028EDcchName         = dword ptr -100h

.text:004028EDdwIndex         = dword ptr -0FCh

.text:004028EDphkResult       = dword ptr -0F8h

.text:004028EDSubKey          = byte ptr -0F4h

.text:004028EDlParam          = byte ptr -0A4h

.text:004028EDName            = byte ptr -54h

.text:004028EDvar_4           = dword ptr -4

.text:004028EDarg_0           = dword ptr  8

.text:004028EDhKey            = dword ptr  0Ch

.text:004028EDarg_8           = dword ptr  10h

.text:004028ED

.text:004028ED                push    ebp

.text:004028EE                lea     ebp,[esp-90h]

.text:004028F5                sub     esp,110h

.text:004028FB             

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值