推荐学习书目
› 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 · May 27, 2017 · 3242 views
    This topic created in 3410 days ago, the information mentioned may be changed or developed.

    如果在运行如上代码前,先打开一个 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 replies  •  2017-06-05 23:08:27 +08:00
    zsz
        1
    zsz  
       May 28, 2017
    看错误信息,应该是 PAMIE 需要与已经运行的 ie 进程通讯,打开 url

    你可以使用下面的方法来调用浏览器

    import webbrowser

    webbrowser.open('http://www.163.com')


    加我们的群问效率高些,一群工程师组建的面向初学者的
    Python Linux 学习群,qq 群号:278529278,
    Php Linux 学习群,qq 群号:476648701,
    非商业性质,拒绝广告,只接收真正想学这方面技术的朋友,交流学习,申请请说明来自 v2ex
    vtoexsir
        2
    vtoexsir  
    OP
       Jun 5, 2017
    导入如下注册信息,就可以正常调用了:

    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\""
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   805 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 21:59 · PVG 05:59 · LAX 14:59 · JFK 17:59
    ♥ Do have faith in what you're doing.