ошибка импорта Python - PullRequest
       24

ошибка импорта Python

4 голосов
/ 25 октября 2009

Я пытаюсь использовать некоторый код 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.

Ответы [ 3 ]

2 голосов
/ 25 октября 2009

Ваш 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')

в верхней части файла.

1 голос
/ 25 октября 2009

распечатайте sys.path прямо перед импортом и убедитесь, что путь к win32com находится там

0 голосов
/ 25 октября 2009

всем, пожалуйста, прочитайте сообщение об ошибке: "Нет модуля с именем win32api ", т.е. не win32com

Поместите некоторые диагностические элементы в начало вашего скрипта, например,

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

и сократите оставшуюся часть сценария до минимума, необходимого для воспроизведения проблемы.

Покажите нам (а) сценарий (б) вывод, точное отслеживание и сообщение об ошибке, воспроизведенное копированием / вставкой в ​​и отредактированную версию вашего вопроса, т. Е. Не перепечатывайте ничего из этого.

...