win32com.gen_py导入错误
问题描述:
我正在开发一个Python应用程序,它可以与Outlook接口并以Outlook的名义发送电子邮件。正因为如此,我需要使用win32com
库,才能使用win32com.client
。
除此之外,相同的Python脚本还必须使用Oracle mysql连接器访问MySQL数据库。正因为如此,必须使用Python34,因为这是我设法使用sql连接器的唯一版本。
现在问题的关键在于此。我已经安装win32com(因为它没有预先安装Python34),它安装时没有错误,我可以在python中导入win32com。然而,进口win32com.client时,它提供了以下错误信息:
win32com.gen_py导入错误
>>> 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经验的人可以提供一些我需要安装或修复的建议,我会很感激
答
在这里找到了问题。原来,我需要以管理员身份运行Python,应该已经在给出权限错误的情况下运行了Python。奇怪的是,gen_py目录仍然是空的,但是。
当作为不同的用户运行时,python可能会在完全不同的位置搜索模块。 –
总是以管理员身份运行Python并不是真正的解决方案。我也不认为'pywin32'有这样一个公然的设计缺陷。必须是别的东西 - 也许需要一次运行它作为管理员(这仍然是一个错误,但不是一个关键的问题)。 –
@DanielleM。可能有正确的想法。为了安装win32com模块,由于系统限制,我必须使用管理员模式。由于这个原因,它很可能安装在完全不同的目录中,但即使如此,这仍然是一个相当奇怪的错误。 – Polymer