Заставить ArcPy работать с Anaconda?


23

Я пытаюсь следовать пошаговым инструкциям в ответе на вопрос « Как отделить установку Python с помощью ArcGIS », но не могу найти файл пути DTBGGP64.pth, в C:\Python27\ArcGIS10.2\Lib\site-packages.

Кто-нибудь сталкивался с подобной проблемой?

Мне интересно, есть ли обходной путь, включив файл пути, который сообщает Anaconda, где установлен arcpy? Я попытался создать файл .pth, содержащий следующий текст:

# .pth file for arcpy

C:\Program Files (x86)\ArcGIS\Desktop10.2\bin 
C:\Program Files (x86)\ArcGIS\Desktop10.2\arcpy
C:\Program Files (x86)\ArcGIS\Desktop10.2\Scripts

и сохранил его C:\Anaconda\Lib\site-packages(то есть, если это действительно, где все пакеты сохранены), но я получаю следующую ошибку:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Program Files (x86)\ArcGIS\Desktop10.2\arcpy\arcpy\__init__.py", line 21, in <module>
    from arcpy.geoprocessing import gp
  File "C:\Program Files (x86)\ArcGIS\Desktop10.2\arcpy\arcpy\geoprocessing\__init__.py", line 14, in <module>
    from _base import *
  File "C:\Program Files (x86)\ArcGIS\Desktop10.2\arcpy\arcpy\geoprocessing\_base.py", line 14, in <module>
    import arcgisscripting
ImportError: DLL load failed: %1 is not a valid Win32 application.

Я использую conda 3.7-py27 на платформе Windows 7 (64bit). Anaconda установлена ​​в, C:\Anacondaа ArcMap установлена ​​в C:\ArcGIS\Desktop10.2. Есть ли альтернативное решение, чтобы заставить arcpy работать с Anaconda? Я просто хочу иметь возможность запускать свои скрипты из Powershell.


просто чтобы быть уверенным - когда вы набираете 'python' в командной строке cmd - какая версия / установка выдает это? (то есть arcgis или anaconda?) - упс только что увидел, что это немного устарело. проблема решена к настоящему времени.
liquidmotion

Я слышал от разработчика из Esri UC, что Anacondas будет встроен в ArcGIS 10.5. Я бы порекомендовал просто установить нужные вам модули, иначе это может стать грязным.
dgrubman

Похоже, что это ^ из системных требований ArcGIS 10.5
WxCZar

Ответы:


13

Вы используете 64-битную версию Python в вашей установке Anaconda, а ArcMap Python является 32-битной. Вам нужно будет установить некоторую 64-битную сборку ArcGIS (либо 64-битную фоновую геообработку, либо ArcGIS for Server) и указать вместо этого, либо вместо этого установить 32-битный экземпляр Anaconda и повторить попытку. Смотрите страницу загрузок и получите 32-битный установщик.


33

Из этого туториала Вы узнаете, как настроить среду conda для работы с ArcGIS 10.4 и ArcGIS Pro 1.3.

Рабочий процесс для настройки Anaconda с ArcGIS 10.4

  • Установите Anaconda без загрязнения среды Windows (пути, реестр), чтобы сломать стек Python Esri
  • Сконфигурируйте Anaconda с нужными надстройками и
  • Сконфигурируйте Python ArcGIS так, чтобы он знал о соответствующем контенте Anaconda.

1) Установите Anaconda для всех пользователей

  1. Перейти к http://continuum.io/downloads
  2. Загрузите 32-разрядную версию Anaconda (Python 2.7)
  3. В диалоговых окнах установки:
    • Выберите установку для всех пользователей
    • Установить в папку по умолчанию (C: \ Anaconda2)
    • ВАЖНО : Чтобы избежать взлома ArcGIS (или другого программного обеспечения), снимите флажки (а) сделать Anaconda Python по умолчанию и (b) добавить Anaconda Python в PATH.
  4. Перейдите в Пуск> Все программы (приложения)> Anaconda2 (32-разрядная версия)> Anaconda Prompt. Щелкните правой кнопкой мыши, запустите от имени администратора

2) Настройте среду Anaconda для использования с ArcGIS

  1. Найдите версии numpy и matplotlib, которые использует ArcGIS.
Откройте ArcMap и его окно Python и введите следующие команды:

    • >>> импорт sys, numpy, matplotlib
    • >>> print (sys.version, numpy .__ version__, matplotlib .__ version__)
    • ('2.7.10 (по умолчанию, 23 мая 2015 г., 09:40:32) [MSC v.1500 32 бит (Intel)]', '1.9.2', '1.4.3')
  1. Создайте среду Anaconda, совместимую с ArcGIS
    • Откройте командную строку Anaconda (Пуск> Все программы (приложения)> Anaconda2 (32-разрядная версия), выберите « Anaconda Prompt »), щелкните правой кнопкой мыши и выберите «Запуск от имени администратора». .
    • Тип (в зависимости от версии ArcGIS, я использую ArcGIS 10.4 в качестве примера здесь):
    • "conda create -n arc104 python = 2.7.10 numpy = 1.9.2 matplotlib = 1.4.3 pyparsing xlrd xlwt pandas scipy ipython ipython-notebook ipython-qtconsole"
    • Введите y, чтобы продолжить.
    • Затем команда Anaconda conda создаст подкаталог среды, например: "C: \ Anaconda2 \ envs \ arc104", установив в него загруженные пакеты.
  2. Протестируйте виртуальную среду
    • В командной строке Anaconda введите: активировать arc104
    • Тип: список Конда . Вы можете увидеть список установленных пакетов.
  3. Добавить больше пакетов
    • Вы можете добавить больше пакетов, используя conda install , но убедитесь, что вы указали номера версий для них, которые не изменят версию среды python или numpy (или ArcGIS больше не сможет использовать эту среду).
    • Давайте добавим модуль Python Spatial Analysis Library ( pysal ).
    • Введите в командной строке Anaconda следующую команду : "conda install -n arc104 python = 2.7.10 numpy = 1.9.2 matplotlib = 1.4.3 pysal"

3) Настройте ArcGIS, чтобы увидеть Анаконду и наоборот

  1. Анаконда Питон в ArcPy
    • Скопируйте рабочий стол 10.4.pth файл в папку site-packages среды Anaconda:
    • От: C: \ Python27 \ ArcGIS10.4 \ Lib \ site-packages \ Desktop10.4.pth
    • Кому: C: \ Anaconda2 \ envs \ arc104 \ Lib \ site-packages \ Desktop10.4.pth
  2. Arcpy для Анаконда Питон
    • Создайте файл zconda.pth (путь) с содержимым «C: \ Anaconda \ envs \ arc104 \ lib \ site-packages».
    • Затем скопируйте zconda.pth в C: \ Python27 \ ArcGIS10.4 \ Lib \ site-packages
  3. Тестирование в ArcMap
    • Как обычный пользователь, запустите ArcMap, откройте окно Python
    • тип "импортный пизал"
    • типа "писал". Всплывающее меню со списком функций, предоставляемых pysal, является довольно хорошим признаком успешной установки.
  4. Тестирование в PyCharm
    • Запустите PyCharm, в File \ Settings… выберите Project, затем Project Interpreter.
    • Не обращайте внимания на раскрывающийся список Project Interpreter и нажмите кнопку со значком «Добавить локальный», а в браузере файлов выберите « C: \ Anaconda2 \ envs \ arc104 \ python.exe».
    • Чтобы запустить скрипт, щелкните его правой кнопкой мыши в окне «Проект» и выберите «Выполнить» или «Отладка».
    • Перезапустите PyCharm для консоли Python, чтобы использовать среду arc104.

Рабочий процесс для настройки Anaconda с ArcGIS Pro 1.3

1) Создайте среду Anaconda, совместимую с ArcGIS Pro

  • Скопируйте папку arcgispro-py3 из C: \ Program Files \ ArcGIS \ Pro \ bin \ Python \ envs и вставьте в C: \ Anaconda2 \ envs
  • Переименуйте скопированную папку arcgispro-py3 в C: \ Anaconda2 \ envs в arcpro

2) Протестируйте виртуальную среду

  • В командной строке Anaconda введите: строке активировать arcpro
  • Тип: список Конда . Вы можете увидеть список установленных пакетов

3) Добавить больше пакетов

  • Давайте добавим библиотеку пространственного анализа Python ( pysalмодуль ).
  • Введите в командной строке Anaconda следующую команду : «conda install pysal»

4) Настройте ArcGIS, чтобы увидеть Анаконду и наоборот

  • Анаконда Питон в ArcPy
    • Отредактируйте файл ArcGISPro.pth (путь) в "C: \ Anaconda2 \ envs \ arcpro \ lib \ site-packages".
    • Измените относительный путь ArcPy на C: \ Program Files \ ArcGIS \ Pro \ Resources \ ArcPy
    • Измените относительный путь ArcToolBox на C: \ Program Files \ ArcGIS \ Pro \ Resources \ ArcToolBox
  • Arcpy для Анаконда Питон
    • Создайте файл zconda.pth (путь) с содержимым «C: \ Anaconda2 \ envs \ arcpro \ lib \ site-packages».
    • Затем скопируйте zconda.pth в C: \ Program Files \ ArcGIS \ Pro \ bin \ Python \ envs \ arcgispro-py3 \ lib \ site-packages
  • Тестирование в ArcGIS Pro
    • Запустите ArcGIS Pro, откройте окно Python
    • тип "импортный пизал"
    • типа "писал". Всплывающее меню со списком функций, предоставляемых pysal, является довольно хорошим признаком успешной установки.
  •  Тестирование в PyCharm
    • Запустите PyCharm, в File \ Settings… выберите Project, затем Project Interpreter.
    • Не обращайте внимания на раскрывающийся список Project Interpreter и нажмите кнопку cog для добавления Local, а в браузере файлов выберите C: \ Anaconda2 \ envs \ arcpro \ python.exe
    • Чтобы запустить скрипт, щелкните его правой кнопкой мыши в окне «Проект» и выберите «Выполнить» или «Отладка».
    • Перезапустите PyCharm для консоли Python, чтобы использовать среду arcpro.

Ссылки

  1. https://goo.gl/pOyLA9

Все это прекрасно работает, пакеты Anaconda находятся внутри ArcGIS и наоборот, но у меня осталась проблема. Если я попытаюсь выполнить импорт arcpy, а затем arcpy. Описать класс объектов RDBMS (Oracle) в Anaconda, то получу IOError: ... не существует. Прекрасно работает с классом объектов файловой базы данных, но, по-видимому, не будет подключаться к Oracle (например, arcpy.Describe (r'C: \ temp \ password_saved_sde_file.sde \ EDGIS.ElectricDataset \ EDGIS.Anchor ')).
Фил Пенн

7

Чтобы решить эту проблему, перейдите в папку python27 \ Lib \ site-packages, которая была расположена в папке «C: \ Python27 \ ArcGIS10.1 \ Lib \ site-packages», и найдите файл Desktop10.1.pth.

В моей системе проблема была решена путем простого копирования файла Desktop10.1.pth в «C: \ AppData \ Local \ Continuum \ Anaconda \ Lib \ site-packages».

Если вы используете Anaconda 64 bit, вы получите другую ошибку при попытке импортировать arcpy, потому что ArcGIS работает 32 bit. Поэтому вы должны убедиться, что у вас установлена ​​32-битная версия Anaconda, а не 64-битная, чтобы все соответствовало ArcGIS. Когда файл скопирован и у вас установлена ​​32-разрядная версия Anaconda, должен работать импорт arcpy.


3

Если вы установили Arc до Anaconda, ваш стандартный IDLE, окно Python (в Arc) и консоль Python всегда будут извлекаться из установленных вами модулей Arc, т. Е. C:\Python27\ArcGIS <version>\Lib(И / или) Lib\site-packages. Если у вас есть пакеты, установленные с Anaconda, которые вы хотите использовать с установкой Python в Arc, вам нужно записать файлы .pth, чтобы делиться ими между установками Python ( легкое чтение ).

Например, я хотел использовать пакет с пандами из своего материала Anaconda. Я сделал текстовый файл в папке anaconda.pthс пакетами сайта Arc, в которой содержалось содержимое, C:\Anaconda\Lib\site-packagesчтобы связать Arc-install с пакетами сайта Anaconda. Теперь я мог бы import pandasвнутри установленного Arc Python без ImportError. (Если у вас возникли проблемы с numpy, переименуйте numpyпапку с установленной Arc в _numpy).

С другой стороны, скопируйте и вставьте Desktop<version>.pthфайл из папки Arc site-packages в вашу Anaconda (которая указывает фактическое расположение пакета arcpy), и создайте другой файл .pth, который указывает на вашу папку Arc site-packages в вашей Anaconda, так что Вы можете использовать пакеты Arc от Spyder, если вы используете его.


2

Другой пользователь задал похожий вопрос на github, который может вас заинтересовать. Вот суть того, что один пользователь рекомендовал импортировать данные автозаполнения arcpy для anaconda:

DamnWidget прокомментировал 26 февраля https://github.com/DamnWidget/anaconda/issues/284

Откройте PowerShell или CMD.exe и перейдите к установке anaconda в папке «Packages» в вашем Sublime Text 3% APPDATA%. Вставьте компакт-диск в папку anaconda_lib и запустите интерактивный интерпретатор Python по этому пути.

Скопируйте и вставьте следующее:

import jedi

print(jedi.Script('import arcpy; arcpy.').completions())

Затем (по крайней мере, для меня) он вернул кучу вещей в окне cmd, и это, похоже, сработало. Я снова открыл Sublime Text, и он вызывает автозаполнение для arcpy функций.

Моя проблема в том, что их загрузка занимает более 5 секунд, кажется, что arcpy никогда не будет загружаться в память дольше, чем на несколько секунд. Но это другая проблема, я думаю ...


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