2009-10-24 160 views
4

我想用一些python-2.1代碼來控制另一個程序(ArcGIS)。我使用的python版本是2.5。我在運行代碼時收到以下錯誤消息。蟒蛇導入錯誤

<type'exceptions.ImportError'>: No module named win32api 
Failed to execute (polyline2geonetwork2). 

我試過安裝pywin32-214.win32-py2.5.exe,但仍然收到相同的錯誤信息。我不知道是否需要對我的原始python安裝做任何事情,所以它知道我已經安裝了它。

我覺得我的代碼有問題的部分如下:

import win32com.client, sys, string, os, re, time, math 

gp = win32com.client.Dispatch("esriGeoprocessing.GpDispatch.1") 
conn = win32com.client.Dispatch(r'ADODB.Connection') 

感謝您的幫助 - 我很新的蟒蛇。

+0

開始空閒。鍵入import win32com.client並回車。你有錯誤信息嗎? – foosion 2009-10-24 23:34:45

+1

你有一個叫做win32api.py的文件嗎? ?它的完整路徑是什麼?包含win32api.py的目錄必須位於sys.path中才能找到它。 – unutbu 2009-10-24 23:45:31

+0

導入win32.com工作正常 - 我沒有收到錯誤消息。 我在這裏找到了win32api.py: C:\ Python25 \ Lib \ site-packages \ isapi \ test \ build \ bdist.win32 \ winexe \ temp – womble 2009-10-25 00:26:07

回答

1

打印出來sys.path權前的進口,並確保路徑win32com是有

+0

win32com不存在,即使我事先導入它。不過,win32是。 – womble 2009-10-25 00:27:47

0

大家請仔細閱讀錯誤信息:「無模塊命名WIN32API」,即不win32com

把一些診斷填滿腳本的頂部,例如

import sys 
print sys.version 
print sys.path 
print sys.argv[0] 

並將您的腳本的其餘部分降低到重現問題所需的最小值。 (a)腳本(b)輸出,確切的追溯和錯誤信息,通過複製/粘貼到您的問題的編輯版本中複製,即不重新輸入任何信息。

2

你的sys.path是

['C:\\Documents and Settings\\david\\My Documents\\GIS_References\\public\\funconn_public', 'C:\\Python25\\Lib\\idlelib', 'C:\\Program Files\\ArcGIS\\bin', 'C:\\WINDOWS\\system32\\python25.zip', 'C:\\Python25\\DLLs', 'C:\\Python25\\lib', 'C:\\Python25\\lib\\plat-win', 'C:\\Python25\\lib\\lib-tk', 'C:\\Python25', 'C:\\Python25\\lib\\site-packages', 'C:\\Python25\\lib\\site-packages\\win32', 'C:\\Python25\\lib\\site-packages\\win32\\lib', 'C:\\Python25\\lib\\site-packages\\Pythonwin'] 

和winapi.py位於C:\ Python25 \ LIB \站點包\ ISAPI \測試\編譯\ bdist.win32 \ winexe \ TEMP。

注意,這個目錄沒有在sys.path中列出。爲了正常工作,您需要在sys.path中放置C:\ Python25 \ Lib \ site-packages \ isapi \ test \ build \ bdist.win32 \ winexe \ temp。

看來winapi.py尚未安裝。它位於test \ build ... \ temp目錄中。 我不太瞭解Windows + Python。也許有一些與winapi.py一起提供的文檔解釋瞭如何實現安裝。

一個快速(但醜陋)的修復方法是手動將所需的目錄插入到sys.path中。 我的意思是,你可以編輯polyline2geonetwork.py並把

import sys 
sys.path.append(r'C:\Python25\Lib\site-packages\isapi\test\build\bdist.win32\winexe\temp') 

接近文件的頂部。