Membuat ArcPy bekerja dengan Anaconda?

23

Saya mencoba mengikuti petunjuk langkah demi langkah dalam jawaban untuk " cara memisahkan instalasi Python dengan ArcGIS " tetapi tidak dapat menemukan file path DTBGGP64.pth,, di C:\Python27\ArcGIS10.2\Lib\site-packages.

Adakah yang pernah mengalami masalah serupa?

Saya bertanya-tanya apakah ada solusi dengan memasukkan file path yang memberitahu Anaconda di mana arcpy diinstal? Saya mencoba membuat file .pth yang berisi teks berikut:

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

dan menyimpannya ke C:\Anaconda\Lib\site-packages(yaitu, jika ini memang tempat semua paket disimpan) tapi saya mendapatkan kesalahan berikut:

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.

Saya menjalankan conda 3.7-py27 pada platform windows 7 (64bit). Anaconda diinstal dalam C:\Anacondadan ArcMap diinstal pada C:\ArcGIS\Desktop10.2. Apakah ada solusi alternatif untuk membuat arcpy bekerja dengan Anaconda? Saya hanya ingin dapat menjalankan skrip saya dari Powershell.

pengguna26750
sumber
hanya untuk memastikan - ketika Anda mengetik 'python' di cmd prompt - versi / instal apa yang digaungkan? (Yaitu arcgis atau anaconda?) - Ups hanya melihat ini agak tanggal. prob diselesaikan sekarang.
fluidmotion
Saya mendengar dari pengembang di Esri UC bahwa Anacondas akan dibangun ke dalam ArcGIS 10.5. Saya akan merekomendasikan hanya menginstal modul yang Anda butuhkan jika tidak bisa berantakan.
dgrubman
Sepertinya ini ^ adalah kasus dari Persyaratan Sistem ArcGIS 10.5
WxCZar

Jawaban:

13

Anda menggunakan versi Python 64 bit di instalasi Anaconda dan Python ArcMap 32 bit. Anda harus menginstal 64 bit ArcGIS build (baik 64 bit Background Geoprocessing atau ArcGIS untuk Server) dan arahkan ke sana, atau instal instance 32 bit Anaconda sebagai gantinya dan coba lagi. Lihat halaman unduhan dan dapatkan penginstal 32 bit.

Jason Scheirer
sumber
33

Tutorial ini menunjukkan kepada Anda cara mengatur lingkungan conda agar bekerja dengan ArcGIS 10.4 dan ArcGIS Pro 1.3.

Alur kerja untuk mengatur Anaconda dengan ArcGIS 10.4

  • Instal Anaconda tanpa merusak lingkungan Windows (paths, registry) untuk memecah tumpukan python Esri
  • Konfigurasikan Anaconda dengan add-on tertentu yang Anda inginkan, dan
  • Konfigurasikan Python ArcGIS sehingga ia mengetahui konten Anaconda yang sesuai.

1) Instal Anaconda untuk Semua Pengguna

  1. Pergi ke http://continuum.io/downloads
  2. Unduh 32-bit Anaconda versi (Python 2.7)
  3. Dalam dialog instal:
    • Pilih instal untuk Semua Pengguna
    • Instal ke folder secara default (C: \ Anaconda2)
    • PENTING : Untuk menghindari kerusakan ArcGIS (atau perangkat lunak lain), hapus centang pada kotak centang (a) jadikan Anaconda sebagai Python default dan (b) tambahkan Python Anaconda ke PATH.
  4. Pergi ke Mulai> Semua Program (aplikasi)> Anaconda2 (32-bit)> Anaconda Prompt. Klik kanan, jalankan sebagai administrator

2) Mengkonfigurasi lingkungan Anaconda untuk digunakan dengan ArcGIS

  1. Temukan versi numpy dan matplotlib yang digunakan ArcGIS.
Buka ArcMap dan jendela Python-nya, dan masukkan perintah ini:

    • >>> impor sys, numpy, matplotlib
    • >>> cetak (sys.version, numpy .__ version__, matplotlib .__ version__)
    • ('2.7.10 (default, 23 Mei 2015, 09:40:32) [MSC v.1500 32 bit (Intel)]', '1.9.2', '1.4.3')
  1. Buat lingkungan Anaconda yang kompatibel dengan ArcGIS
    • Masuk ke Anaconda Command Prompt (Start> All Programs (apps)> Anaconda2 (32-bit), pilih " Anaconda Prompt "), Klik kanan, Jalankan sebagai Administrator .
    • Ketik (tergantung pada versi ArcGIS, saya menggunakan ArcGIS 10.4 sebagai contoh di sini):
    • "conda create -n arc104 python = 2.7.10 numpy = 1.9.2 matplotlib = 1.4.3 mem-parsing xlrd xlwt pandas scipy ipython ipython-notebook ipython-qtconsole"
    • Masukkan y untuk melanjutkan.
    • Perintah conda Anaconda kemudian akan mengatur subdirektori lingkungan, mis: "C: \ Anaconda2 \ envs \ arc104", menginstal paket yang diunduh ke dalamnya.
  2. Uji lingkungan virtual
    • Di Anaconda Command Prompt, ketik: aktifkan arc104
    • Ketik: daftar conda . Anda dapat melihat daftar paket yang diinstal.
  3. Tambahkan lebih banyak paket
    • Anda dapat menambahkan lebih banyak paket menggunakan conda install , tetapi pastikan Anda menentukan nomor versi untuk ini yang tidak akan mengubah versi python atau numpy (atau ArcGIS tidak akan dapat menggunakan lingkungan itu lagi).
    • Mari kita tambahkan Python Spatial Analysis Library ( pysal modul ).
    • Ketik perintah berikut di Anaconda Prompt : "conda install -n arc104 python = 2.7.10 numpy = 1.9.2 matplotlib = 1.4.3 pysal"

3) Konfigurasikan ArcGIS untuk melihat Anaconda dan sebaliknya

  1. Anaconda Python ke ArcPy
    • Salin Desktop10.4.pth file ke folder paket situs lingkungan Anaconda:
    • Dari: C: \ Python27 \ ArcGIS10.4 \ Lib \ situs-paket \ Desktop10.4.pth
    • Kepada: C: \ Anaconda2 \ envs \ arc104 \ Lib \ situs-paket \ Desktop10.4.pth
  2. Arcpy ke Anaconda Python
    • Buat file zconda.pth (path) dengan konten "C: \ Anaconda \ envs \ arc104 \ lib \ situs-paket" di dalamnya.
    • Kemudian salin zconda.pth ke C: \ Python27 \ ArcGIS10.4 \ Lib \ situs-paket
  3. Pengujian di ArcMap
    • Sebagai pengguna biasa, mulai ArcMap, buka jendela Python
    • ketik "impor pysal"
    • ketik "pysal." Menu popup dengan daftar fungsi yang disediakan pysal adalah tanda yang cukup bagus untuk instalasi berhasil.
  4. Menguji di PyCharm
    • Mulai PyCharm, di File \ Settings ..., pilih Project lalu Project Interpreter
    • Abaikan daftar drop-down untuk Project Interpreter, dan klik tombol roda gigi untuk Menambahkan Lokal, dan di browser file pilih C: \ Anaconda2 \ envs \ arc104 \ python.exe
    • Untuk menjalankan skrip Anda, klik kanan di jendela Project, dan pilih Run atau Debug
    • Mulai ulang PyCharm untuk Konsol Python untuk menggunakan lingkungan arc104.

Alur kerja untuk mengatur Anaconda dengan ArcGIS Pro 1.3

1) Buat lingkungan Anaconda yang kompatibel dengan ArcGIS Pro

  • Salin folder arcgispro-py3 dari C: \ Program Files \ ArcGIS \ Pro \ bin \ Python \ envs dan rekatkan ke C: \ Anaconda2 \ envs
  • Ganti nama folder yang disalin arcgispro-py3 di C: \ Anaconda2 \ envs menjadi arcpro

2) Uji lingkungan virtual

  • Di Anaconda Command Prompt, ketik: aktifkan arcpro
  • Ketik: daftar conda . Anda dapat melihat daftar paket yang diinstal

3) Tambahkan lebih banyak paket

  • Mari kita tambahkan Python Spatial Analysis Library ( pysal modul ).
  • Ketik perintah berikut di Anaconda Prompt : "conda install pysal"

4) Konfigurasikan ArcGIS untuk melihat Anaconda dan sebaliknya

  • Anaconda Python ke ArcPy
    • Edit ArcGISPro.pth (path) dalam "C: \ Anaconda2 \ envs \ arcpro \ lib \ situs-paket".
    • Ubah ArcPy relatif jalur ke C: \ Program Files \ ArcGIS \ Pro \ Resources \ ArcPy
    • Ubah jalur ArcToolBox relatif ke C: \ Program Files \ ArcGIS \ Pro \ Resources \ ArcToolBox
  • Arcpy ke Anaconda Python
    • Buat zconda.pth (path) dengan konten "C: \ Anaconda2 \ envs \ arcpro \ lib \ situs-paket" di dalamnya.
    • Kemudian Salin zconda.pth ke C: \ Program Files \ ArcGIS \ Pro \ bin \ Python \ envs \ arcgispro-py3 \ lib \ situs-paket
  • Pengujian di ArcGIS Pro
    • Mulai ArcGIS Pro, buka jendela Python
    • ketik "impor pysal"
    • ketik "pysal." Menu popup dengan daftar fungsi yang disediakan pysal adalah tanda yang cukup bagus untuk menginstal.
  •  Menguji di PyCharm
    • Mulai PyCharm, di File \ Settings ..., pilih Project lalu Project Interpreter
    • Abaikan daftar drop-down untuk Project Interpreter, dan klik tombol roda gigi untuk Menambahkan Lokal, dan di browser file pilih C: \ Anaconda2 \ envs \ arcpro \ python.exe
    • Untuk menjalankan skrip Anda, klik kanan di jendela Project, dan pilih Run atau Debug
    • Mulai ulang PyCharm untuk Konsol Python untuk menggunakan lingkungan arcpro.

Referensi

  1. https://goo.gl/pOyLA9
Qiusheng Wu
sumber
Ini semua berfungsi dengan baik, paket Anaconda ada di dalam ArcGIS dan sebaliknya, tetapi saya memiliki masalah yang tersisa. Jika saya mencoba dan melakukan impor arcpy dan kemudian arcpy. Uraikan pada RDBMS (Oracle) -menggunakan featureeclass di Anaconda maka saya mendapatkan IOError: ... tidak ada. Berfungsi baik pada fi tur databodatabase tapi tidak tampak terhubung ke Oracle (mis. Arcpy. Deskripsi
Phil Penn
7

Untuk mengatasinya, browse ke folder python27 \ Lib-site-paket, milikku berada di bawah "C: \ Python27 \ ArcGIS10.1 \ Lib-site-Packages", dan temukan file Desktop10.1.pth.

Di sistem saya, masalahnya diselesaikan dengan hanya menyalin file Desktop10.1.pth ke "C: \ AppData \ Local \ Continuum \ Anaconda \ Lib \ situs-paket".

Jika Anda menjalankan Anaconda 64 bit, Anda akan mendapatkan kesalahan yang berbeda ketika Anda mencoba mengimpor arcpy karena ArcGIS berjalan 32 bit. Oleh karena itu, Anda harus memastikan bahwa Anaconda 32 bit Anda diinstal daripada 64 bit sehingga semuanya sesuai dengan ArcGIS. Setelah file disalin dan Anda memiliki Anaconda 32 bit, impor arcpy akan berfungsi.

WxCZar
sumber
3

Jika Anda menginstal Arc sebelum Anaconda, IDLE default Anda, Jendela Python (dalam Arc), dan konsol Python akan selalu menarik dari modul Arc-instal Anda, yaitu C:\Python27\ArcGIS <version>\Lib(dan / atau) Lib\site-packages. Jika Anda memiliki paket yang diinstal dengan Anaconda yang ingin Anda gunakan dengan Arc menginstal Python, Anda harus menulis file .pth agar dapat dibagikan di antara instalasi Python ( bacaan ringan ).

Misalnya, saya ingin menggunakan paket panda dari barang Anaconda saya. Saya membuat file teks di folder situs-paket Arc saya yang disebut anaconda.pthdengan isi C:\Anaconda\Lib\site-packagesuntuk menghubungkan Arc-install ke paket situs Anaconda. Sekarang, saya dapat import pandasberada di dalam Python Arc yang diinstal tanpa ImportError. (Jika Anda memiliki masalah dengan numpy, ubah nama numpyfolder yang diinstal Arc menjadi _numpy).

Di flipside, salin dan tempel Desktop<version>.pthfile dari folder paket situs Arc ke dalam Anaconda Anda (yang menentukan lokasi sebenarnya dari paket arcpy), dan buat file .pth lain yang menunjuk ke folder paket situs Arc di folder Anaconda Anda sehingga Anda dapat menggunakan paket Arc dari Spyder jika Anda menggunakannya.

MapImbibery
sumber
2

Pengguna lain mengajukan pertanyaan serupa di github, yang mungkin menarik bagi Anda. Inilah inti dari apa yang direkomendasikan satu pengguna untuk mengimpor data pelengkapan otomatis arcpy untuk anaconda:

DamnWidget berkomentar pada 26 Feb https://github.com/DamnWidget/anaconda/issues/284

Buka PowerShell atau CMD.exe dan pergi ke instalasi anaconda Anda di bawah folder Paket di Teks Luhur Anda 3% APPDATA%. CD ke folder anaconda_lib dan mulai interpreter Python interaktif di jalur itu.

Salin dan rekatkan yang berikut ini:

import jedi

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

Kemudian (setidaknya bagi saya) itu mengembalikan banyak barang di jendela cmd, dan tampaknya berhasil. Saya membuka kembali Sublime Text dan menarik autocomplete untuk fungsi arcpy.

Masalah saya adalah bahwa dibutuhkan 5+ detik untuk memuatnya, sepertinya tidak pernah menyimpan arcpy dimuat dalam memori selama lebih dari beberapa detik. Tapi saya pikir itu masalah yang berbeda ...

clavicus
sumber
1

Anda harus menginstal Anaconda versi 32 bit.

mmann1123
sumber