python2.7 win32com 避坑指南

790 阅读2分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第16天,点击查看活动详情

win32com的安装

pywin32为Python提供了许多windows的api,尤其是你要操作office相关文件时。

image.png 进入download界面下载pywin32

image.png 进入“build”,选择对应python的版本,选择最新的pywin32下载

image.png 下载的文件是.exe文件,直接点击运行安装即可:

image.png

遇到的各种奇葩问题

1.exe安装提示:not found in the registry

python version 2.7 required,which was not found in the registry

注册表增加执行python的键值:

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Python\PythonCore\2.7\InstallPath

image.png

2. DLL load failed: %1 不是有效的 Win32 应用程序。

Traceback (most recent call last):
  File "home_city.py", line 13, in <module>
    import win32com
  File "C:\Python27\lib\site-packages\win32com\__init__.py", line 5, in <module>
    import win32api, sys, os
ImportError: DLL load failed: %1 不是有效的 Win32 应用程序。

位数不对:pywin32-221.win-amd64-py2.7.exe

3. pywintypes.com_error: -2147221005

app = win32com.client.DispatchEx('Excel.Application') 
File 
    "[C:\Python27\lib\site-packages\win32com\client\__init__.py], 
line 113, in 
    DispatchEx dispatch = pythoncom.CoCreateInstanceEx(clsid, None, clsctx, serverInfo, (pythoncom.IID_IDispatch,))[0] 
pywintypes.com_error: (-2147221005,

电脑没有安装excel导致

4. 无法安装64位版本的office

image.png

access database卸载了

5. pywintypes.com_error:-2147352567

pywintypes.com_error: (-2147352567, '\xb7\xa2\xc9\xfa\xd2\xe2\xcd\xe2\xa1\xa3', (0, u'Microsoft Excel', u'Microsoft Excel \u4e0d\u80fd\u8bbf\u95ee\u6587\u4ef6\u201cD:\Program Files (x86)\Jenkins\workspace\export-json-config\type2_id1\\u4e16\u754c\u57ce\u5e02\u533a\u57df\u5bfc\u51fa\world_city.xlsx\u201d\u3002 \u53ef\u80fd\u7684\u539f\u56e0\u6709\u4ee5\u4e0b\u51e0\u4e2a:\n\n\u2022 \u6587\u4ef6\u540d\u79f0\u6216\u8def\u5f84\u4e0d\u5b58\u5728\u3002\n\u2022 \u6587\u4ef6\u6b63\u88ab\u5176\u4ed6\u7a0b\u5e8f\u4f7f\u7528\u3002\n\u2022 \u60a8\u6b63\u8981\u4fdd\u5b58\u7684\u5de5\u4f5c\u7c3f\u4e0e\u5f53\u524d\u6253\u5f00\u7684\u5de5\u4f5c\u7c3f\u540c\u540d\u3002', u'xlmain11.chm', 0, -2146827284), None)
pywintypes.com_error: (
    -2147352567, 
    '\xb7\xa2\xc9\xfa\xd2\xe2\xcd\xe2\xa1\xa3',
    (
        0, 
        u'Microsoft Excel', 
        u'Microsoft Excel 不能访问文件“xxx.xlsx”。 
          可能的原因有以下几个:
            文件名称或路径不存在。
            文件正被其他程序使用。 
            您正要保存的工作簿与当前打开的工作簿同名。',
        u'xlmain11.chm',
        0, 
        -2146827284
    ), 
    None)

解决办法也非常迷惑人,原因不清楚:

  • C:/Windows/System32/config/systemprofile/Desktop (我新建这个目录成功了)
  • C:/Windows/SysWOW64/config/systemprofile/Desktop