Як змусити ArcPy працювати з Anaconda?


23

Я намагаюся виконувати покрокові вказівки у відповіді на " як розділити встановлення Python за допомогою ArcGIS ", але не можу знайти файл шляху DTBGGP64.pth, в C:\Python27\ArcGIS10.2\Lib\site-packages.

Хтось стикався з подібним питанням?

Мені цікаво, чи існує рішення, включивши файл шляху, який повідомляє Анаконда, де встановлена ​​архпія? Я спробував створити .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). Анаконда встановлена ​​в C:\Anacondaі ArcMap встановлена ​​в C:\ArcGIS\Desktop10.2. Чи є альтернативне рішення, щоб змусити Arcpy працювати з Anaconda? Я просто хочу мати змогу запускати свої сценарії з Powershell.


просто щоб бути впевненим - коли ви вводите "python" у підказці cmd - у якій версії / установці це лунає? (тобто аркгіс чи анаконда?) - ой щойно побачив це трохи датовано. проблема вирішена на даний момент.
fluidmotion

Я почув від розробника в Esri UC, що Anacondas буде вбудований в ArcGIS 10.5. Я рекомендую просто встановити потрібні вам модулі, інакше це може стати безладним.
dgrubman

Схоже, що це так, як це стосується системних вимог ArcGIS 10.5
WxCZar

Відповіді:


13

Ви використовуєте 64-бітну версію Python у своїй установці Anaconda, а ArcMap's Python - 32-бітну. Вам потрібно буде встановити 64-бітну збірку ArcGIS (або 64-бітну фонову геопроцесировку, або ArcGIS для сервера) і вказати на це замість цього, або встановити 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 (чи іншого програмного забезпечення), зніміть прапорці (a), зробіть Anaconda Python за замовчуванням та (b) додайте Anaconda Python до PATH.
  4. Перейдіть до пункту «Пуск»> Усі програми (програми)> Anaconda2 (32-розрядні)> Підказка Anaconda. Клацніть правою кнопкою миші, запустіть як адміністратор

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

  1. Знайдіть версії numpy та matplotlib, які використовує ArcGIS.
Відкрийте ArcMap та його вікно Python та введіть ці команди:

    • >>> імпортувати sys, numpy, matplotlib
    • >>> друк (sys.version, numpy .__ версія__, matplotlib .__ версія__)
    • ('2.7.10 (за замовчуванням, 23 травня 2015, 09:40:32) [32-бітний MSC v.1500 (Intel)]', '1.9.2', '1.4.3')
  1. Створіть середовище Anaconda, сумісне з ArcGIS
    • Перейдіть до командного рядка Anaconda (Пуск> Усі програми (програми)> Anaconda2 (32-розрядний), виберіть пункт « Анаконда-рядок »), клацніть правою кнопкою миші, Запустіть як адміністратор .
    • Тип (залежно від версії 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, щоб продовжити.
    • Команда conda Anaconda потім встановить підкаталог середовища, наприклад: "C: \ Anaconda2 \ envs \ arc104", встановивши завантажені в нього пакети.
  2. Перевірте віртуальне середовище
    • У командному рядку Anaconda введіть: активуйте arc104
    • Тип: список кондо . Ви можете побачити список встановлених пакетів.
  3. Додайте більше пакетів
    • Ви можете додати більше пакетів за допомогою програми conda , але переконайтеся, що ви вказали номери версій для них, які не змінять середовище версії python або numpy (або ArcGIS вже не зможе використовувати це середовище).
    • Додамо модуль бібліотеки просторового аналізу Python ( pysal ).
    • Введіть таку команду в підказку Anaconda : "conda install -n arc104 python = 2.7.10 numpy = 1.9.2 matplotlib = 1.4.3 pysal"

3) Налаштуйте ArcGIS, щоб побачити Анаконда та навпаки

  1. Анаконда Пітон до ArcPy
    • Скопіюйте файл Desktop10.4.pth у папку пакунків середовища Anaconda:
    • Від: C: \ Python27 \ ArcGIS10.4 \ Lib \ site-пакети \ Desktop10.4.pth
    • До: C: \ Anaconda2 \ envs \ arc104 \ Lib \ site-пакети \ Desktop10.4.pth
  2. Аркапія до Анаконда Пітона
    • Створіть файл zconda.pth (шлях) із вмістом у ньому "C: \ Anaconda \ envs \ arc104 \ lib \ site-пакети".
    • Потім скопіюйте zconda.pth в C: \ Python27 \ ArcGIS10.4 \ Lib \ site-пакети
  3. Тестування в ArcMap
    • Як постійний користувач, запустіть ArcMap, відкрийте вікно Python
    • введіть "імпорт pysal"
    • введіть "писал". Спливаюче меню зі списком функцій, наданих писалом, є досить хорошим знаком того, що встановлення вдалося.
  4. Тестування в PyCharm
    • Запустіть PyCharm, у меню Файл \ Налаштування виберіть Проект, а потім Інтерпретатор проекту
    • Ігноруйте випадаючий список для Interpreter Project і натисніть кнопку зубчастої кнопки Додати місце, а в браузері файлів виберіть 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-пакети".
    • Змініть відносний шлях ArcPy на C: \ Program Files \ ArcGIS \ Pro \ Resources \ ArcPy
    • Змініть відносний шлях ArcToolBox на C: \ Program Files \ ArcGIS \ Pro \ Resources \ ArcToolBox
  • Аркапія до Анаконда Пітона
    • Створіть у ньому файл zconda.pth (шлях) із вмістом "C: \ Anaconda2 \ envs \ arcpro \ lib \ site-пакети".
    • Потім скопіюйте zconda.pth в C: \ Program Files \ ArcGIS \ Pro \ bin \ Python \ envs \ arcgispro-py3 \ lib \ site-пакети
  • Тестування в ArcGIS Pro
    • Запустіть ArcGIS Pro, відкрийте вікно Python
    • введіть "імпорт pysal"
    • введіть "писал". Спливаюче меню зі списком наданих функцій писалом - це досить непоганий знак, що встановлення вдалося.
  •  Тестування в PyCharm
    • Запустіть PyCharm, у меню Файл \ Налаштування виберіть Проект, а потім Інтерпретатор проекту
    • Ігноруйте випадаючий список для Interpreter Project і натисніть кнопку зубця для додавання локального і в браузері файлів виберіть C: \ Anaconda2 \ envs \ arcpro \ python.exe
    • Щоб запустити свій скрипт, клацніть правою кнопкою миші у вікні проекту та виберіть «Запустити» або «Налагодити»
    • Перезапустіть PyCharm для консолі Python для використання середовища arcpro.

Список літератури

  1. https://goo.gl/pOyLA9

Це все чудово працює, пакети Anaconda знаходяться в ArcGIS і навпаки, але у мене залишилася проблема. Якщо я спробую зробити імпорт arcpy, а потім arcpy.Опишіть на RDBMS (Oracle) функціональний клас в Anaconda, то я отримаю IOError: ... не існує. Працює чудово на классах функцій datageodatabase, але, здавалося б, не підключається до Oracle (наприклад, arcpy.Describe (r'C: \ temp \ password_saved_sde_file.sde \ EDGIS.ElectricDataset \ EDGIS.Anchor ')).
Філ Пен

7

Щоб вирішити це, перейдіть до папки python27 \ Lib \ site-пакети, моя розташована під "C: \ Python27 \ ArcGIS10.1 \ Lib \ site-пакети", і знайдіть файл Desktop10.1.pth.

У моїй системі проблему було вирішено шляхом простого копіювання файлу Desktop10.1.pth у "C: \ AppData \ Local \ Continuum \ Anaconda \ Lib \ site-пакети".

Якщо ви працюєте з Anaconda 64 біт, ви отримаєте іншу помилку при спробі імпортувати arcpy, оскільки ArcGIS працює 32 біт. Таким чином, ви повинні переконатися, що у вас встановлений 32-бітний анаконда, а не 64-бітний, щоб справи відповідали ArcGIS. Після того як файл буде скопійовано та у вас 32-бітний анаконда, імпорт arcpy повинен працювати.


3

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

Наприклад, я хотів використати пакет панди з моїх матеріалів Anaconda. Я створив текстовий файл у папці пакунків для веб-сайтів Arc, названий anaconda.pthвмістом, C:\Anaconda\Lib\site-packagesщоб з'єднати встановлення Arc до пакунків сайту Anaconda. Тепер я міг би import pandasзнаходитись у встановленому дугою Python без ImportError. (Якщо у вас проблеми з numpy, перейменуйте numpyпапку, встановлену дугою _numpy).

На зворотному боці скопіюйте та вставте Desktop<version>.pthфайл із папки пакунків веб-сайтів Arc у вашій Anaconda (що вказує фактичне розташування пакету arcpy) та зробіть інший .pth файл, який вказує на папку пакунків для веб-сайтів Arc у вашій Anaconda. ви можете використовувати Arc-пакети від Spyder, якщо ви їх використовуєте.


2

Інший користувач задав подібне запитання щодо github, яке може вас зацікавити. Ось суть того, що один користувач рекомендував імпортувати дані автозаповнення arcpy для анаконди:

DamnWidget прокоментував 26 лютого https://github.com/DamnWidget/anaconda/isissue/284

Відкрийте PowerShell або CMD.exe та перейдіть до встановлення вашої анаконди у папці Packages у своєму піднесеному тексті 3% APPDATA%. CD в ​​папку anaconda_lib і запустіть інтерактивний інтерпретатор Python на цьому шляху.

Скопіюйте та вставте наступне:

import jedi

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

Потім (принаймні для мене) він повернув купу елементів у вікні cmd, і, здавалося, спрацював. Я знову відкрив Sublime Text, і він підтягує автозаповнення для функцій arcpy.

Моя проблема полягає в тому, що для їх завантаження потрібно 5+ секунд, але, здається, ніколи не зберігати архівну пам’ять більше декількох секунд. Але я думаю, що це інше питання ...


Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.