2011-08-30 77 views
51

當運行在Windows操作系統(64位)python26 ..... 我有這樣的錯誤:進口WIN32API錯誤2.6

import win32api" error in Python 2.6: pywintypes26.dll 

pythoncom26.dll missing 
ImportError: DLL load failed: The specified module could not be found. 

我也做了MSI安裝python26 所有的DLL可以在C:\ Python26 \ Lib \ site-packages \ pywin32_system32下找到

+4

將pywintypes26.dll和pythoncom26.dll複製到c:\ Python26 \ Lib \ site-packages \ win32 - >解決問題! –

+0

如果您已經解決了該問題,請將解決方案作爲答案發布。 – agf

+1

自發布此答案之日起一年內,謝謝。它爲我今天工作 – nish

回答

59

移動/複製pywintypes26.dll和pythoncom26.dll到c:\ Python26 \ Lib \ site-packages \ win32 - >解決問題!

+0

我真的很想知道爲什麼dll報告失蹤,但這種解決方案也適用於我的問題。 (爲了記錄,我還安裝了另一個版本的python,也許安裝程序中存在一個錯誤?) – daramarak

+0

近一年後,我遇到了同樣的問題。感謝你的回答。 –

+3

此問題(以及此解決方案)繼續適用於Python2.7的217和218.4安裝程序。令人失望的是,真的 –

1

我總是安裝Active State Python distro爲你提供win32軟件包並且正確。

33

我也遇到了導入win32api的問題。

pywin32的安裝後腳本失敗,應該複製pythoncom26.dllpythoncomloader26.dllpywintypes26.dll等等。我用手運行它,並且我的安裝被修復了。

python scripts\pywin32_postinstall.py -install 
+2

這可能需要Win7(64位)上的管理員權限,否則會失敗,您無權安裝COM對象。但尚未報告pywin32擴展已成功安裝。 – handle

+1

這部分解決了我的問題。如果我在當前目錄中使用python運行:'python C:\ mypath \ myscript.py',安裝後腳本似乎已經完成了它的工作並且按照預期工作。另一方面,如果我在當前目錄中運行目標腳本:'C:\ mypath \ python myscript.py',則腳本腳本不起作用,我必須按照接受的答案建議並將DLL移入win32手工製作網站包目錄。 – Dex

0

我可以通過刪除所有已安裝的Python3.4版本(在安裝3.4.2之前忘記卸載3.4.1),刪除C:\ Python34以及安裝Python 3.4.2之後修復這種情況。pywin32-219.win32-可以安裝和調用py34.exe,而不會出現任何問題。 因此,複製DLLs不應該是必要的!

7

我在安裝64位Python 3.4.2時遇到類似的問題。我運行了http://www.lfd.uci.edu/~gohlke/pythonlibs/的安裝可執行文件pywin32-219.win-amd64-py3.4.exe。

在站點它明確規定:

「的Python 3.4用戶必須手動從提升的命令提示運行python.exe Scripts\pywin32_postinstall.py -install」。

我沒有做第一次;我從一個正常的提示得到以下反饋安裝:

c:\python34>python.exe Scripts\pywin32_postinstall.py -install 
Copied pythoncom34.dll to C:\Python34\pythoncom34.dll 
Copied pywintypes34.dll to C:\Python34\pywintypes34.dll 
You do not have the permissions to install COM objects. 
The sample COM objects were not registered. 
etc.etc. 
Finishing with "The pywin32 extensions were succesfully installed" ... 

我只讀最後一句,我開始運行導致獲得這些DLL加載失敗一些代碼。

所以,做了一些研究,並開始升高提示(操作方法:見「http://www.sevenforums.com/tutorials/783-elevated-command-prompt.html」),並再次運行:

c:\python34>python.exe Scripts\pywin32_postinstall.py -install 
Copied pythoncom34.dll to C:\Windows\system32\pythoncom34.dll 
Copied pywintypes34.dll to C:\Windows\system32\pywintypes34.dll 
Registered: Python.Interpreter 
Registered: Python.Dictionary 
Registered: Python 
-> Software\Python\PythonCore\3.4\Help[None]=None 
-> Software\Python\PythonCore\3.4\Help\Pythonwin Reference[None]='C:\\Python34\\Lib\\site-packages\\PyWin32.chm' 
Pythonwin has been registered in context menu 
Shortcut for Pythonwin created 
Shortcut to documentation created 
The pywin32 extensions were successfully installed. 

現在我的代碼順利地執行(只要這件事是關注..感嘆,還有其他的東西要做)。

6

運行安裝程序以管理員身份和它的作品:

  • 右鍵單擊pywin32安裝程序。EXE
  • 選擇
+0

這應該是每個人的第一次嘗試(因爲它是最簡單的)。如果您已經運行了安裝程序,只需以管理員身份和繁榮狀態修復即可再次運行它。適用於python35。 –

3

「以管理員身份運行」作爲支柱上方建議安裝腳本沒有運行,這個問題可以看出,從車輪安裝時(正如我遇到過)

python scripts\pywin32_postinstall.py -install 

如果當通過車輪安裝時發現你有這個問題,然後從這裏安裝它可以解決上述問題。

https://pypi.python.org/pypi/pypiwin32

1

如果上面沒有解決問題,你仍然缺少msvcr100.dll文件。它位於您的\System32\文件夾中,或者更可能位於您的c:\PythonXX\Lib\site-packages\win32\文件夾中。

經過幾個小時的搜索後,我毫無用處地解決了這個問題,即使它看起來像導入仍然沒有解決,因爲它應該是(PyCharm仍然給我一個扭曲的下劃線),但它起作用。

0

我不知道爲時已晚或者不回答這個問題。我也遇到了這個問題,並且我嘗試了上面的每種方法,但都沒有工作。
最後,我找到了原因。當我們安裝pywin32時,我們必須選擇適合python版本(2.6,2.7,3.3等)和python的位數(x64或x86)的版本。注意,它必須符合python的位數,而不是PC的位數。如果您在x64 PC中安裝x86 python,則必須使用x86安裝pywin32。