2009-10-24 2 views
4

Я пытаюсь использовать некоторый код python-2.1 для управления другой программой (ArcGIS). Версия python, которую я использую, - 2.5. При запуске кода появляется следующее сообщение об ошибке.ошибка импорта python

<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.

+0

начало IDLE. введите импорт win32com.client и нажмите enter. Вы получили сообщение об ошибке? – foosion

+1

У вас есть файл win32api.py? ? Каков его полный путь? Каталог, содержащий win32api.py, должен находиться в sys.path для Python, чтобы найти его. – unutbu

+0

импорт win32.com отлично работает - я не получаю сообщение об ошибке. Я нашел win32api.py здесь: C: \ Python25 \ Lib \ site-packages \ isapi \ test \ build \ bdist.win32 \ winexe \ temp – womble

ответ

1

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

+0

win32com не существует, даже если я его импортирую заранее. win32 - это правда. – womble

0

все, пожалуйста, прочитайте сообщение об ошибке: «Нет модуль с именем WIN32API», то есть не win32com

Помещенных некоторые диагностические добавьте вверху вашего скрипта, например

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

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

Покажите нам (а) сценарий (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. Чтобы заставить все работать, вам нужно будет установить 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') 

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

 Смежные вопросы

  • Нет связанных вопросов^_^