2017-10-18 3 views
1

Outlook과 상호 작용하고 Outlook을 대신하여 전자 메일을 보낼 수있는 Python 응용 프로그램을 개발 중입니다. 이 때문에 win32com.client을 사용하려면 win32com 라이브러리를 사용해야합니다.

이 외에도 동일한 Python 스크립트는 Oracle mysql 커넥터를 사용하여 MySQL 데이터베이스에 액세스해야합니다. 이 때문에 SQL-Connector로 작업 할 수있는 유일한 버전이므로 Python34를 사용해야합니다.

여기에 문제의 핵심이옵니다. win32com을 설치 했으므로 (Python34와 함께 사전 설치되지 않았기 때문에) 오류없이 설치되었고, 파이썬에서 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 모듈을 다시 설치하여 문제를 해결할 수 있었는지 확인했지만 유용하지는 않은지 확인했습니다. 파이썬 좀 더 경험이있는 사람이 내가 설치하거나 수리 할 필요가 무엇인지에 대한 몇 가지 조언을 제공 할 수 있다면

나는 여기에 문제를 찾을 수

답변

0

감사 할 것이다. Python을 관리자 권한으로 실행해야하며, 권한 오류가 주어지면 Python을 실행해야합니다. 그러나 gen_py 디렉토리가 여전히 비어있는 것은 이상합니다.

+0

다른 사용자로 실행하면 python은 완전히 다른 위치에서 모듈을 검색합니다. –

+0

파이썬을 관리자로 항상 실행하는 것은 해결책이 아닙니다. 나도'pywin32'는 그런 뻔뻔스러운 디자인 결함이 있다고 생각하지 않습니다. 뭔가 다른 것이어야합니다. 어쩌면 관리자로 한 번 실행해야합니다 (중요한 것은 아니지만 여전히 버그 일 것입니다). –

+0

@DanielleM. 아마도 올바른 생각을 가지고 있습니다. win32com 모듈을 설치하려면 시스템 제한 때문에 관리자 모드를 사용해야했습니다. 이것 때문에 완전히 다른 디렉토리에 설치되었을 수도 있지만, 여전히 이것은 아주 이상한 버그입니다. – Polymer