如果在运行如上代码前,先打开一个 ie 浏览器,就正常运行,不会报错。
但是,如果不事前打开一个 ie 浏览器,直接运行如上代码,就会报错。
请大家看看是什么原因?
怎么弄好呢?
环境:
windows7 64 位
python 2.7.12 32 位
代码:
from PAM30 import PAMIE
def d():
ie = PAMIE()
ie.navigate('http://pamie.sourceforge.net/pamieform.html')
报错信息如下:
Traceback (most recent call last): File "D:/jianguoyun/pythonProgrames/myModule/test/pamieTest/pamie-f.py", line 37, in <module> d() File "D:/jianguoyun/pythonProgrames/myModule/test/pamieTest/pamie-f.py", line 9, in d ie = PAMIE() File "D:\jianguoyun\pythonProgrames\myModule\PAM30.py", line 68, in __init__ self._ie = win32com.client.dynamic.Dispatch('InternetExplorer.Application') File "D:\Python27\lib\site-packages\win32com\client\dynamic.py", line 127, in Dispatch IDispatch, userName = _GetGoodDispatchAndUserName(IDispatch,userName,clsctx) File "D:\Python27\lib\site-packages\win32com\client\dynamic.py", line 114, in _GetGoodDispatchAndUserName return (_GetGoodDispatch(IDispatch, clsctx), userName) File "D:\Python27\lib\site-packages\win32com\client\dynamic.py", line 91, in _GetGoodDispatch IDispatch = pythoncom.CoCreateInstance(IDispatch, None, clsctx, pythoncom.IID_IDispatch) pywintypes.com_error: (-2147221164, '\xc3\xbb\xd3\xd0\xd7\xa2\xb2\xe1\xc0\xe0', None, None)
1
zsz 2017-05-28 19:20:53 +08:00
看错误信息,应该是 PAMIE 需要与已经运行的 ie 进程通讯,打开 url
你可以使用下面的方法来调用浏览器 import webbrowser webbrowser.open('http://www.163.com') 加我们的群问效率高些,一群工程师组建的面向初学者的 Python Linux 学习群,qq 群号:278529278, Php Linux 学习群,qq 群号:476648701, 非商业性质,拒绝广告,只接收真正想学这方面技术的朋友,交流学习,申请请说明来自 v2ex |
2
vtoexsir OP 导入如下注册信息,就可以正常调用了:
Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Classes\CLSID\{0002DF01-0000-0000-C000-000000000046}\LocalServer32] @="\"C:\\Program Files (x86)\\Internet Explorer\\iexplore.exe\"" [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{0002DF01-0000-0000-C000-000000000046}\LocalServer32] @="\"C:\\Program Files\\Internet Explorer\\iexplore.exe\"" |