2009-10-24 135 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') 

接近文件的顶部。