使用win32com.gen_py导入错误

时间:2017-10-18 22:18:30

标签: python win32com

我正在开发一个Python应用程序,它可以与Outlook交互并代表Outlook发送电子邮件。因此,我需要使用win32com库,才能使用win32com.client

除此之外,相同的Python脚本还必须使用Oracle mysql-connector访问MySQL数据库。因此,必须使用Python34,因为这是我设法使用sql-connector的唯一版本。

现在问题的关键在于此。我已经安装了win32com(因为它没有预装Python34)并且安装时没有错误,我可以在python中导入win32com。但是,在导入win32com.client时,它会显示以下错误消息:

>>> import win32com.client
Traceback (most recent call last):
    File "C:\Python34\lib\site-packages\win32com\client\gencache.py", line 60, in __init__
        _LoadDicts()
    File "C:\Python34\lib\site-packages\win32com\client\gencache.py", line 110, in _LoadDicts
        f = open(os.path.join(win32com.__gen_path__, "dicts.dat"), "rb")
FileNotFoundError: [Errno 2] No such file or directory: 'C:\\Python34\\lib\\site-packages\\win32com\\gen_py\\dicts.dat'

During handling of the above exception, another exception occurred:

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

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
    File "<stdin>", line 1, in <module>
    File "C:\Python34\lib\site-packages\win32com\client\__init__.py", line 11, in <module>
        from . import gencache
    File "C:\Python34\lib\site-packages\win32com\client\gencache.py", line 666, in <module>
        __init__()
    File "C:\Python34\lib\site-packages\win32com\client\gencache.py", line 62, in __init__
        Rebuild()
    File "C:\Python34\lib\site-packages\win32com\client\gencache.py", line 653, in Rebuild
        _SaveDicts()
    File "C:\Python34\lib\site-packages\win32com\client\gencache.py", line 69, in _SaveDicts
        f = open(os.path.join(GetGeneratePath(), "dicts.dat"), "wb")
    File "C:\Python34\lib\site-packages\win32com\client\gencache.py", line 145, in GetGeneratePath
        f = open(fname,"w")
PermissionError: [Errno 13] Permission denied: 'C:\\Python34\\lib\\site-packages\\win32com\\gen_py\\__init__.py'

美丽的错误,不是吗!我手动检查了目录'C:\\Python34\\lib\\site-packages\\win32com\\gen_py\\',看看有什么,这就是事情,它完全是空的。当我安装win32com时,我安装了管理员权限,因此无法解决问题。我还重新安装了win32com模块,看看是否可以修复它但无济于事。

如果任何对Python有更多经验的人可以就我需要安装或修复的内容提供一些建议,我将非常感激

2 个答案:

答案 0 :(得分:0)

在这里找到了问题。事实证明我需要以管理员身份运行Python,应该在给定Permission错误的情况下解决这个问题。但是奇怪的是gen_py目录仍然是空的。

答案 1 :(得分:0)

我遇到了同样的问题,并重新安装了AS管理员win32com.client模块的pywin32-XXX.exe安装程序,现在一切正常。 祝你好运。