Python 3.4中的Win32Com.Client错误

1 投票
2 回答
7193 浏览
提问于 2025-04-18 08:20

我正在使用Python 3.4和pywin32-219。我想用win32com.client这个模块,但遇到了以下错误。你们有什么建议可以让我使用win32com.client吗?其他的win32com._导入都没问题。(我想用这个来创建MS Excel中的文档和图表)

import win32com
>>> win32com.client
Traceback (most recent call last):
  File "<pyshell#1>", line 1, in <module>
    win32com.client
AttributeError: 'module' object has no attribute 'client'
>>> import win32com.client
Traceback (most recent call last):
  File "C:\Program Files (x86)\python\lib\site-packages\win32com\client\gencache.py", line 56, in __init__
    _LoadDicts()
  File "C:\Program Files (x86)\python\lib\site-packages\win32com\client\gencache.py", line 106, in _LoadDicts
    f = open(os.path.join(win32com.__gen_path__, "dicts.dat"), "rb")
FileNotFoundError: [Errno 2] No such file or directory: 'C:\\Program Files (x86)\\python\\lib\\site-packages\\win32com\\gen_py\\dicts.dat'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:\Program Files (x86)\python\lib\site-packages\win32com\client\gencache.py", line 139, in GetGeneratePath
    os.stat(fname)
FileNotFoundError: [WinError 2] The system cannot find the file specified: 'C:\\Program Files (x86)\\python\\lib\\site-packages\\win32com\\gen_py\\__init__.py'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "<pyshell#2>", line 1, in <module>
    import win32com.client
  File "C:\Program Files (x86)\python\lib\site-packages\win32com\client\__init__.py", line 11, in <module>
    from . import gencache
  File "C:\Program Files (x86)\python\lib\site-packages\win32com\client\gencache.py", line 662, in <module>
    __init__()
  File "C:\Program Files (x86)\python\lib\site-packages\win32com\client\gencache.py", line 58, in __init__
    Rebuild()
  File "C:\Program Files (x86)\python\lib\site-packages\win32com\client\gencache.py", line 649, in Rebuild
    _SaveDicts()
  File "C:\Program Files (x86)\python\lib\site-packages\win32com\client\gencache.py", line 65, in _SaveDicts
    f = open(os.path.join(GetGeneratePath(), "dicts.dat"), "wb")
  File "C:\Program Files (x86)\python\lib\site-packages\win32com\client\gencache.py", line 141, in GetGeneratePath
    f = open(fname,"w")
PermissionError: [Errno 13] Permission denied: 'C:\\Program Files (x86)\\python\\lib\\site-packages\\win32com\\gen_py\\__init__.py'

2 个回答

0

我通过重新安装adodbapi解决了这个问题(我用的是Python 3.4.1和Win7 x64上的Pywin32构建219):

py -3 -m pip install adodbapi
0

确保你已经正确安装了 Python-3.4.1pywin32 Build 219(如果有需要,可以重新安装)。注意选择64位或32位的安装包,两个软件的位数要一致(当然也要和你的操作系统兼容),这可能是你遇到问题的原因之一。

你是你电脑的管理员吗?你有没有检查过对 C:\Program Files (x86)\python\lib\site-packages\win32com 的写入权限?(正如 @Schollii 所说)如果没有,试着成为管理员,这也是可能出错的地方。

你应该在帖子中添加你的Windows版本(比如Windows 7、8、XP、Vista等),关于如何成为管理员的步骤可以参考以下链接 => Windows 7Windows 8,还有 Windows XP

如果以上都做了,问题还是没解决,试试以下方法(在我的Windows 7 64位上有效)。去这个路径:C:\Python34\Lib\site-packages\win32,把这里的所有 .pyd 文件复制到 C:\Python34。

希望这能帮到你,

祝好,

撰写回答