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')

感谢您的帮助 - 我对 python 很陌生。

4

3 回答 3

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\site-packages\isapi\test\build\bdist.win32\winexe\temp 中。

请注意,此目录未列在您的 sys.path 中。为了让事情顺利进行,您需要将 C:\Python25\Lib\site-packages\isapi\test\build\bdist.win32\winexe\temp 放在 sys.path 中。

似乎 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')

文件顶部附近。

于 2009-10-25T01:40:40.120 回答
1

在导入之前打印出来sys.path并确保路径win32com在那里

于 2009-10-24T23:36:31.480 回答
0

请大家阅读错误消息:“没有名为win32api的模块”即不是 win32com

将一些诊断内容放在脚本的顶部,例如

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

并将脚本的其余部分缩减到重现问题所需的最低限度。

向我们展示 (a) 脚本 (b) 输出、确切的回溯和错误消息,通过复制/粘贴复制到您的问题的编辑版本中,即不要重新输入任何内容。

于 2009-10-25T00:12:05.463 回答