Far funzionare ArcPy con Anaconda?


23

Sto cercando di seguire le istruzioni dettagliate nella risposta a " come separare l'installazione di Python con ArcGIS " ma non riesco a trovare il file del percorso DTBGGP64.pth, in C:\Python27\ArcGIS10.2\Lib\site-packages.

Qualcuno ha affrontato un problema simile?

Mi chiedo se esiste una soluzione alternativa includendo un file di percorso che indica ad Anaconda dove è installato arcpy? Ho provato a creare un file .pth contenente il seguente testo:

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

e l'ho salvato in C:\Anaconda\Lib\site-packages(cioè, se questo è davvero dove sono salvati tutti i pacchetti) ma ottengo il seguente errore:

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.

Sto eseguendo conda 3.7-py27 su una piattaforma Windows 7 (64 bit). Anaconda è installato in C:\Anacondae ArcMap è installato in C:\ArcGIS\Desktop10.2. Esiste una soluzione alternativa per far funzionare Arcpy con Anaconda? Voglio solo essere in grado di eseguire i miei script da Powershell.


solo per essere sicuri - quando si digita 'python' al prompt di cmd - quale versione / installazione fa eco? (cioè arcgis o anaconda?) - oops ho appena visto che è un po 'datato. ormai risolto.
fluidmotion

Ho saputo da uno sviluppatore di Esri UC che Anaconda sarà integrato in ArcGIS 10.5. Consiglierei solo di installare i moduli necessari, altrimenti potrebbe diventare disordinato.
Dgrubman,

Sembra che questo sia il caso dei requisiti di sistema di ArcGIS 10.5
WxCZar

Risposte:


13

Stai usando una versione a 64 bit di Python nell'installazione di Anaconda e ArcMap Python è a 32 bit. Dovrai installare un build ArcGIS a 64 bit (Geoprocessing in background a 64 bit o ArcGIS per Server) e puntare a quello, oppure installare un'istanza Anaconda a 32 bit e riprovare. Vedi la pagina dei download e ottieni il programma di installazione a 32 bit.


33

Questo tutorial mostra come configurare l'ambiente conda per lavorare con ArcGIS 10.4 e ArcGIS Pro 1.3.

Flusso di lavoro per configurare Anaconda con ArcGIS 10.4

  • Installa Anaconda senza sporcare l'ambiente Windows (percorsi, registro) per spezzare lo stack Python di Esri
  • Configura Anaconda con i componenti aggiuntivi che desideri e
  • Configurare Python di ArcGIS in modo che sia a conoscenza del contenuto Anaconda appropriato.

1) Installa Anaconda per tutti gli utenti

  1. Vai a http://continuum.io/downloads
  2. Scarica la versione a 32 bit di Anaconda (Python 2.7)
  3. Nelle finestre di dialogo di installazione:
    • Seleziona installa per Tutti gli utenti
    • Installa in una cartella per impostazione predefinita (C: \ Anaconda2)
    • IMPORTANTE : per evitare di rompere ArcGIS (o altri software), deseleziona le caselle di controllo (a) imposta Anaconda come predefinito Python e (b) aggiungi Anaconda's Python al PERCORSO.
  4. Vai a Start> Tutti i programmi (app)> Anaconda2 (32-bit)> Richiesta Anaconda. Fare clic con il tasto destro, eseguire come amministratore

2) Configurare un ambiente Anaconda per l'uso con ArcGIS

  1. Trova le versioni di numpy e matplotlib che ArcGIS sta utilizzando.
Apri ArcMap e la sua finestra di Python e inserisci questi comandi:

    • >>> import sys, numpy, matplotlib
    • >>> stampa (sys.version, numpy .__ version__, matplotlib .__ version__)
    • ('2.7.10 (impostazione predefinita, 23 maggio 2015, 09:40:32) [MSC v.1500 32 bit (Intel)]', '1.9.2', '1.4.3')
  1. Crea un ambiente Anaconda compatibile con ArcGIS
    • Vai al prompt dei comandi di Anaconda (Start> Tutti i programmi (app)> Anaconda2 (32-bit), seleziona " Prompt Anaconda "), fai clic con il pulsante destro del mouse, Esegui come amministratore .
    • Tipo (a seconda della versione di ArcGIS, sto usando ArcGIS 10.4 come esempio qui):
    • "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"
    • Immettere y per procedere.
    • Il comando conda di Anaconda imposterà quindi una sottodirectory di ambiente, ad esempio: "C: \ Anaconda2 \ envs \ arc104", installando i pacchetti scaricati al suo interno.
  2. Testare l'ambiente virtuale
    • Al prompt dei comandi di Anaconda, digitare: attivare arc104
    • Digitare: elenco conda . Puoi vedere l'elenco dei pacchetti installati.
  3. Aggiungi altri pacchetti
    • Puoi aggiungere altri pacchetti usando conda install , ma assicurati di specificare i numeri di versione per questi che non cambieranno la versione dell'ambiente di python o numpy (o ArcGIS non sarà più in grado di usare quell'ambiente).
    • Aggiungiamo il modulo Python Spatial Analysis Library ( pysal ).
    • Digita il seguente comando al prompt di Anaconda : "conda install -n arc104 python = 2.7.10 numpy = 1.9.2 matplotlib = 1.4.3 pysal"

3) Configura ArcGIS per vedere Anaconda e viceversa

  1. Anaconda Python a ArcPy
    • Copia il file Desktop10.4.pth nella cartella dei pacchetti del sito dell'ambiente Anaconda:
    • Da: C: \ Python27 \ ArcGIS10.4 \ Lib \ site-pacchetti \ Desktop10.4.pth
    • A: C: \ Anaconda2 \ envs \ arc104 \ Lib \ site-pacchetti \ Desktop10.4.pth
  2. Arcpy per Anaconda Python
    • Creare un file zconda.pth (percorso) con il contenuto "C: \ Anaconda \ envs \ arc104 \ lib \ site-pacchetti" al suo interno.
    • Quindi copia zconda.pth in C: \ Python27 \ ArcGIS10.4 \ Lib \ site-pacchetti
  3. Test in ArcMap
    • Come utente normale, avvia ArcMap, apri la finestra di Python
    • digitare "import pysal"
    • digitare "pysal". Un menu a comparsa con un elenco di funzioni fornite da Pysal è un buon segno che l'installazione è riuscita.
  4. Test in PyCharm
    • Avviare PyCharm, in File \ Impostazioni ..., selezionare Progetto quindi Interprete progetto
    • Ignora l'elenco a discesa per Interprete progetto e fai clic sul pulsante ingranaggio per Aggiungi locale e nel browser dei file seleziona C: \ Anaconda2 \ envs \ arc104 \ python.exe
    • Per eseguire lo script, fai clic con il pulsante destro del mouse nella finestra Progetto e scegli Esegui o Debug
    • Riavviare PyCharm per la console Python per utilizzare l'ambiente arc104.

Flusso di lavoro per configurare Anaconda con ArcGIS Pro 1.3

1) Creare un ambiente Anaconda compatibile con ArcGIS Pro

  • Copia la cartella arcgispro-py3 da C: \ Programmi \ ArcGIS \ Pro \ bin \ Python \ envs e incollala in C: \ Anaconda2 \ envs
  • Rinomina la cartella copiata arcgispro-py3 in C: \ Anaconda2 \ envs in arcpro

2) Testare l'ambiente virtuale

  • Al prompt dei comandi di Anaconda, digitare: attivare arcpro
  • Digitare: elenco conda . Puoi vedere l'elenco dei pacchetti installati

3) Aggiungi altri pacchetti

  • Aggiungiamo il modulo Python Spatial Analysis Library ( pysal ).
  • Digita il seguente comando al prompt di Anaconda : "conda install pysal"

4) Configura ArcGIS per vedere Anaconda e viceversa

  • Anaconda Python a ArcPy
    • Modifica il file ArcGISPro.pth (percorso) in "C: \ Anaconda2 \ envs \ arcpro \ lib \ site-pacchetti".
    • Modificare il percorso ArcPy relativo in C: \ Programmi \ ArcGIS \ Pro \ Resources \ ArcPy
    • Modificare il percorso ArcToolBox relativo in C: \ Programmi \ ArcGIS \ Pro \ Resources \ ArcToolBox
  • Arcpy per Anaconda Python
    • Creare un file zconda.pth (percorso) con il contenuto "C: \ Anaconda2 \ envs \ arcpro \ lib \ site-pacchetti" al suo interno.
    • Quindi copia zconda.pth in C: \ Programmi \ ArcGIS \ Pro \ bin \ Python \ envs \ arcgispro-py3 \ lib \ site-pacchetti
  • Test in ArcGIS Pro
    • Avvia ArcGIS Pro, apri la finestra di Python
    • digitare "import pysal"
    • digitare "pysal". Un menu a comparsa con un elenco di funzioni fornite da Pysal è un buon segno che l'installazione è riuscita.
  •  Test in PyCharm
    • Avviare PyCharm, in File \ Impostazioni ..., selezionare Progetto quindi Interprete progetto
    • Ignora l'elenco a discesa per Interprete progetto e fai clic sul pulsante ingranaggio per Aggiungi locale e nel browser dei file seleziona C: \ Anaconda2 \ envs \ arcpro \ python.exe
    • Per eseguire lo script, fai clic con il pulsante destro del mouse nella finestra Progetto e scegli Esegui o Debug
    • Riavviare PyCharm per la console Python per utilizzare l'ambiente arcpro.

Riferimenti

  1. https://goo.gl/pOyLA9

Tutto funziona alla grande, i pacchetti Anaconda si trovano all'interno di ArcGIS e viceversa, ma ho ancora un problema. Se provo a eseguire un'importazione arcpy e poi arcpy.Descrivendo su una featureclass con risorse RDBMS (Oracle) in Anaconda, ottengo IOError: ... non esiste. Funziona bene su una featureclass di filegeodatabase ma non si connette apparentemente a Oracle (ad esempio arcpy.Describe (r'C: \ temp \ password_saved_sde_file.sde \ EDGIS.ElectricDataset \ EDGIS.Anchor ')).
Phil Penn,

7

Per risolvere questo problema, cerca la cartella python27 \ Lib \ site-pacchetti, la mia si trova in "C: \ Python27 \ ArcGIS10.1 \ Lib \ site-pacchetti" e trova il file Desktop10.1.pth.

Sul mio sistema, il problema è stato risolto semplicemente copiando il file Desktop10.1.pth in "C: \ AppData \ Local \ Continuum \ Anaconda \ Lib \ site-pacchetti".

Se si esegue Anaconda a 64 bit, si verificherà un errore diverso quando si tenta di importare arcpy perché ArcGIS funziona a 32 bit. Pertanto, devi assicurarti di aver installato Anaconda a 32 bit anziché a 64 bit in modo che le cose si abbinino ad ArcGIS. Una volta che il file è stato copiato e hai Anaconda a 32 bit, l'importazione arcpy dovrebbe funzionare.


3

Se hai installato Arc prima di Anaconda, il tuo IDLE predefinito, Python Window (in Arc) e la console Python verranno sempre estratti dai moduli installati su Arc, ovvero C:\Python27\ArcGIS <version>\Lib(e / o) Lib\site-packages. Se hai pacchetti installati con Anaconda che desideri utilizzare con l'installazione di Python di Arc, dovrai scrivere i file .pth per condividerli tra le installazioni di Python ( lettura leggera ).

Ad esempio, volevo usare il pacchetto Panda dalla mia roba Anaconda. Ho creato un file di testo nella cartella dei pacchetti del sito di Arc chiamato anaconda.pthcon il contenuto di C:\Anaconda\Lib\site-packagesper collegare Arc-install ai pacchetti del sito di Anaconda. Ora, potrei import pandasall'interno di Python installato Arc senza un ImportError. (In caso di problemi con numpy, rinominare la numpycartella installata su Arc in _numpy).

D'altro canto, copia e incolla il Desktop<version>.pthfile dalla cartella Arc site-pacchetti nella tua Anaconda (che specifica l'ubicazione effettiva del pacchetto arcpy) e crea un altro file .pth che punti alla cartella Arc site-package nella tua Anaconda così puoi usare i pacchetti di Arc da Spyder se lo usi.


2

Un altro utente ha posto una domanda simile su github, che potrebbe interessarti. Ecco la sintesi di ciò che un utente ha raccomandato di importare i dati di completamento automatico arcpy per anaconda:

DamnWidget ha commentato il 26 febbraio https://github.com/DamnWidget/anaconda/issues/284

Apri un PowerShell o CMD.exe e vai all'installazione di anaconda nella cartella Pacchetti in Sublime Text 3% APPDATA%. CD nella cartella anaconda_lib e avviare un interprete Python interattivo su quel percorso.

Copia e incolla quanto segue:

import jedi

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

Poi (almeno per me) ha restituito un sacco di roba nella finestra cmd, e sembrava aver funzionato. Ho riaperto Sublime Text e viene visualizzato il completamento automatico per le funzioni arcpy.

Il mio problema è che ci vogliono più di 5 secondi per caricarli, sembra non tenere mai arcpy caricato in memoria per più di qualche secondo. Ma questo è un problema diverso penso ...


1

Dovresti semplicemente installare la versione a 32 bit di Anaconda.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.