Как избежать ошибки arcpy импорта (RuntimeError: NotInitialized) при использовании IDLE?


11

Версия ArcGIS: ArcGIS 10, Python 2.6.5 Машина: Windows 7 64bit (Intel)

Я получаю следующую ошибку при импорте arcpy с использованием IDLE (приглашение gui и cmd) и при использовании pythonwin.

Я удалил python26 и python25 из моей системы и сделал новую установку ArcGIS 10 и python. Поэтому я звоню IDLE отсюда: "C: \ Python26 \ ArcGIS10.0 \ pythonw.exe"

Ошибка:

** IDLE 2.6.5

импорт arcpy Traceback (последний вызов был последним): файл "", строка 1, в файле импорта arcpy "C: \ Program Files (x86) \ ArcGIS \ Desktop10.0 \ arcpy \ arcpy__init __. py", строка 17, из геообработки импортировать файл gp "C: \ Program Files (x86) \ ArcGIS \ Desktop10.0 \ arcpy \ arcpy \ геопроцессинг__init __. py", строка 14, из _base import * Файл "C: \ Program Files (x86) \ ArcGIS \ Desktop10 .0 \ arcpy \ arcpy \ геопроцессинг_base.py ", строка 568, в env = GPEnvironments (gp) Файл" C: \ Program Files (x86) \ ArcGIS \ Desktop10.0 \ arcpy \ arcpy \ геопроцессинг_base.py ", строка 565 , в GPEnvironments вернуть файл GPEnvironment (геопроцессор) "C: \ Program Files (x86) \ ArcGIS \ Desktop10.0 \ arcpy \ arcpy \ геопроцессинг_base.py", строка 521,в init Файл self._refresh () "C: \ Program Files (x86) \ ArcGIS \ Desktop10.0 \ arcpy \ arcpy \ геопроцессинг_base.py", строка 523, в _refresh envset = (установить (env для env в self._gp.listEnvironments) ())) RuntimeError: NotInitialized **

Службы технической поддержки EsriUK и Esri рекомендовали новую переустановку и изменения реестра = но это не сработало. Я жду от них решения.

Я исследовал, была ли это проблема с дугообразным путем модуля. На форумах Esri и в справке ArcGIS есть несколько ссылок относительно путей . Также возможен связанный поток на gis.stackexchange .

Я последовал совету 'kimo' в ветке форума Esri. Но все равно ошибка импорта.

  1. Моя системная переменная (которую я редактировал): PYTHONPATH = "c: \ python26"; "C: \ Python26 \ ArcGIS10.0"; "C: \ Python26 \ ArcGIS10.0 \ Lib \ site-packages"; " C: \ Program Files (x86) \ ArcGIS \ Desktop10.0 \ arcpy "

  2. Я проверил, у меня есть содержимое "C: \ Python26 \ ArcGIS10.0 \ Lib \ site-packages \ Desktop10.pth". Содержимое: C: \ Program Files (x86) \ ArcGIS \ Desktop10.0 \ bin C: \ Program Files (x86) \ ArcGIS \ Desktop10.0 \ arcpy C: \ Program Files (x86) \ ArcGIS \ Desktop10.0 \ ArcToolbox \ Scripts

Однако сообщение трассировки показывает, что в папке находится сценарий .py: C: \ Program Files (x86) \ ArcGIS \ Desktop10.0 \ arcpy \ arcpy. Следовательно, предполагает, что модуль arcpy найден интерпретатором, но затем не инициализирован (?).

Arcpy можно вызвать из окна Python в ArcMap и ArcCatalog. Только при вызове из интерпретатора Python происходит сбой «arcpy импорта». Следовательно, arcpy хорошо инициализируется ArcMap / ArcCatalog, но не IDLE - как это может быть?

Ранее у меня была установка python25, затем python26, затем после этого он обновился до ArcGIS 10. Поэтому на моей машине было довольно много устаревших python. Тем не менее, я удалил все, и реестр очищен с помощью ccleaner.

Может ли кто-нибудь предложить другую линию исследования, так как я недостаточно разбираюсь в python для решения ошибок инициализации / времени выполнения? Я бы тоже хотел избежать переустановки ОС!


также размещены на ... forums.arcgis.com/threads/...

1
Эта ссылка помогла мне. Я добавил импорт arcserver до импорта arcpy line. myarcgisserver.wordpress.com/2014/04/04/…
G ...... T ......

Ответы:


5

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

Вы хотите поместить C: \ Python26 \ ArcGIS10.0 в системную переменную PATH, чтобы получить правильные исполняемые файлы из IDLE, PythonWin или командной строки.

Ваш PYTHONPATH может быть пустым. Или вы можете просто включить 3 раздела вашего файла Desktop10.pth: C: \ Program Files (x86) \ ArcGIS \ Desktop10.0 \ bin C: \ Program Files; (X86) \ ArcGIS \ Desktop10.0 \ arcpy; C: \ Program Files (x86) \ ArcGIS \ Desktop10.0 \ ArcToolbox \ Scripts - эти пути будут иметь приоритет над поиском модулей по умолчанию (ниже вызываемого python.exe или pythonw.exe).

Наконец, поскольку вы удалили и установили несколько версий Python. На этом этапе в папке C: \ Python26 не должно быть ничего, кроме папки ArcGIS10.0 ESRI, предоставленной 32-битной установки Python 2.6.5. Если там есть файл Lib, он является остатком предыдущей установки и будет мешать работе. Было бы более серьезной проблемой, если бы какая-либо из ваших или предыдущих версий Python26 была 64-битной.

Кроме того, поскольку вы работаете в 64-битной Windows 7, путь к реестру для 32-битных ключей Python: HKLM \ SOFTWARE \ Wow6432Node \ Python Если у вас есть HKLM \ SOFTWARE \ Python, они будут ключами для 64-битной установить. Они также будут мешать 32-битной установке.


Привет стюарт Спасибо за информацию. Я ответил на forum.arcgis.com , ура Сэм
SamFranklin

Тот факт, geoprocessing_base.pyчто обнаруживается (см. Трассировку стека), убедительно свидетельствует о том, что нет проблем с поиском модулей, что исключает ваше предложение изменить PYTHONPATH. Конфликт между 64 и 32 Python может быть только при включенииPATH обоих . Однако, если 64-разрядные версии были удалены, они не могут быть включены PATH. (Даже если местоположение каким-то образом остается PATH, там больше нечего найти.)
jpmc26

5

Я столкнулся с этой проблемой при настройке сценариев в новой среде .... Я забыл установить сервер менеджера лицензий с помощью ArcGIS Administrator.


2

сделай это

  1. открыть менеджер приложений arcgis
  2. установить менеджер лицензий

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

import arcview
import arcpy

Привет - попробовал импортировать arcview. Получил следующую ошибку. Тем не менее, я мог бы использовать arcpy хорошо? >>> импорт трассировки arcview (последний вызов был последним): файл "<pyshell # 3>", строка 1, в файле <module> импорт arcview "C: \ Program Files (x86) \ ArcGIS \ Desktop10.0 \ arcpy \ arcview.py ", строка 18, в <module> gp.setProduct (" ArcView ") RuntimeError: ОШИБКА 999999: Ошибка выполнения функции. >>> import arcpy >>> Я предоставил полный ответ на: bit.ly/ggtlio, где я могу прикрепить скриншоты и дать более полный ответ.
SamFranklin

2

Это то, что я сделал, переменные Path и PYTHONPATH Environment

этого мне достаточно.

Я использовал PyScripter, но я скачал версию 2.7. Необходимо было использовать PyScripter для Python 2.6, чтобы не было ошибок при импорте arcpy


0

В моем случае я не был подключен к сети напрямую или через VPN для проверки лицензии ArcGIS. Как только я подключился к сети, ошибка «RuntimeError: NotInitialized» была устранена, и мой сценарий был успешно выполнен.

Хотя вам нужно ... 1) открыть менеджер приложений arcgis 2) установить менеджер лицензий ... как упоминалось в gotchula

Надеюсь это поможет!

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.