V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
vtoexsir
V2EX  ›  Python

windows7 上, python2.7 操作 ie 浏览器时, PAM30 报错: pywintypes.com_error

  •  
  •   vtoexsir · 2017-05-27 09:55:09 +08:00 · 2277 次点击
    这是一个创建于 2739 天前的主题,其中的信息可能已经有所发展或是发生改变。

    如果在运行如上代码前,先打开一个 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)
    
    2 条回复    2017-06-05 23:08:27 +08:00
    zsz
        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
    vtoexsir
        2
    vtoexsir  
    OP
       2017-06-05 23:08:27 +08:00
    导入如下注册信息,就可以正常调用了:

    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\""
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1034 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 22:02 · PVG 06:02 · LAX 14:02 · JFK 17:02
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.