SP1 per ArcGIS 10.1 ha estensione per Python a 64 bit per il geoprocessing in background - implicazioni per altri usi di Python


12

Se è installato il Geoprocessing in background a 64 bit per ArcGIS Desktop 10.1sp1 , che effetto ha sulla configurazione di Python per uso generale?

Esri ha rilasciato SP1 per il prodotto ArcGIS 10.1 e per il componente Desktop ha reso disponibile un'istanza Python 2.7.2 a 64 bit che una volta installata sostituisce le chiamate Python 2.7 a 32 bit Esri con chiamate a 64 bit per il geoprocessing in background (elaborazione inviata lato di una sessione GUI ArcGIS Desktop attiva).

L'installazione è facoltativa, ovvero senza di essa ArcGIS Desktop continua con solo spazio di memoria utente a 32 bit disponibile. Con esso, viene inserita una voce \ bin64 nella cartella del programma Esri e vengono stabilite le chiavi del Registro di sistema per l'elaborazione a 64 bit in "HKEY_LOCAL_MACHINE \ SOFTWARE \ ESRI \ ArcGIS 10.1 SP1 per Desktop Background Geoprocessing (64-bit)" e quindi il geoprocessing in background fatto nello spazio di memoria a 64 bit.

Sia il Python a 32 bit di Esri sia il suo Python a 64 bit sono installazioni 2.7.2 complete.

Durante il geoprocessing in background il registro di Esri, i file di percorso e configurazione si occupano di chiamare gli eseguibili Python a 64 bit. Mentre l'uso di Python a 32 bit viene conservato nella sessione ArcGIS Desktop dove necessario.

Pertanto, ciò che resta a ciascun utente è decidere se integrare Python 2.7.2 a 64 bit installato nelle proprie esigenze informatiche al di fuori di ArcGIS. E il modo migliore per farlo quando entrambe le versioni di Python a 32 e 64 bit sono residenti sul sistema?

Chiesto in un altro modo: Esri si occupa dell'integrazione di Python a 64 bit nel suo desktop ArcGIS, quindi quali modi funzionerà per configurarlo per il resto dei casi d'uso oltre ArcGIS?


Solo curioso, hai usato Process Monitor o qualcosa del genere per monitorare l'installazione di questo pacchetto? Stavo pensando di farlo da solo.
blah238,

no, ho appena esaminato le modifiche al file system e al registro
V Stuart Foote,

3
Ho fatto un rapido test delle prestazioni del Geoprocessing in background prima e dopo 64 bit - non sono sicuro che solo un leggero miglioramento (10%) sia quello che ci si sarebbe aspettato.
PolyGeo

4
@Arabella - Non mi aspetto di passare a 32 bit per rendere qualcosa di più veloce e il miglioramento del 10% collegato non sembra statisticamente significativo. La differenza principale è che la versione a 64 bit consentirà al geoprocesso di utilizzare più di 4 GB di RAM. Qualsiasi altra cosa sarà tangenziale.
GIS-Jonathan,

2
@PolyGeo - Fondamentalmente, la differenza principale tra 32 bit e 64 bit è che le applicazioni a 32 bit non possono usare più di 4 GB di RAM (semplicemente non possono affrontarlo - in realtà più probabilmente 2 GB o 3 GB su Windows a seconda di flag e cose). Ad ogni modo, per vedere veramente il vantaggio di 32 bit contro 64 bit, è necessario eseguire un test che utilizzi più di ~ 4 GB di RAM. Naturalmente, potrebbero esserci delle ottimizzazioni che ESRI ha fatto tra le versioni, ma la stessa età a 32/64 bit si occupa solo dell'utilizzo della RAM a livello di core.
GIS-Jonathan,

Risposte:


1

Pertanto, ciò che resta a ciascun utente è decidere se integrare Python 2.7.2 a 64 bit installato nelle proprie esigenze informatiche al di fuori di ArcGIS. E il modo migliore per farlo quando entrambe le versioni di Python a 32 e 64 bit sono residenti sul sistema?

Come ho capito, ci stai chiedendo il modo in cui possiamo distinguere le diverse versioni di Python e usarlo in base alle nostre esigenze.

Il modo più semplice è specificare esattamente l'interprete che si intende utilizzare per eseguire lo script. Maggiori dettagli sono disponibili in questo SO q / a.


In un senso. Ma sono più interessato a farlo programmaticamente durante gli script. Come attivare / disattivare PYTHONHOME e PYTHONPATH e quindi manipolarli con chiamate sys.path.append () o site.addsitedir () per riconfigurare il sistema in modo da utilizzare Python a 32 bit o 64 bit. Il suggerimento nel SO q / a di chiamare semplicemente una versione di Python o un'altra è piuttosto grossolano. La sfida sarebbe per la finezza di utilizzare in modo flessibile il modulo del sito e di lavorare in modo affidabile in un IDE. Oltre alla semplice manipolazione del percorso e del pacchetto del sito, è possibile avere più configurazioni Python con virtualenv di ambienti a 32 e 64 bit.
V Stuart Foote,

Nel tuo script puoi provare a chiamare l'esecuzione di altri script Python chiamandolo con l'interprete necessario (x32 o x64) dalla riga di comando usando ad esempio il modulo di sottoprocesso .
Alex Markov,

0

Per me, questo è ciò che era richiesto ... e non sono ancora sicuro che tutto funzioni "correttamente". Dopo aver installato gli strumenti di Geoprocessing in background a 64 bit e aver modificato il mio PYTHONPATH per usarli (ad esempio da Python predefinito), sembra che abbia rotto tutto in ArcMap (ad esempio Python a console a 32 bit). Quindi ho escogitato il seguente lavoro in giro. YMMV

1) Scarica ed esegui gli strumenti di geoprocessing in background a 64 bit: fortunatamente l'ho trovato una volta! Non riesco a trovare di nuovo il link ...

2) Aggiungere quanto segue al sistema PYTHONPATH (supponendo che si stia utilizzando 64 bit per impostazione predefinita):; C: \ Python27 \ ArcGISx6410.1 \ DLLs; C: \ Python27 \ ArcGISx6410.1 \ lib; C: \ Python27 \ ArcGISx6410 .1 \ lib \ plat-win; C: \ Python27 \ ArcGISx6410.1 \ lib \ lib-tk; C: \ Python27 \ ArcGISx6410.1; C: \ Programmi (x86) \ ArcGIS \ Desktop10.1 \ bin64; C: \ Programmi (x86) \ ArcGIS \ Desktop10.1 \ arcpy; C: \ Programmi (x86) \ ArcGIS \ Desktop10.1 \ ArcToolbox \ Scripts

3) Crea uno script di avvio per Arcmap Python in modo che non venga confuso con le importazioni a 64 bit dal PYTHONPATH

import sys
if sys.executable in ['C:\\Python27\\ArcGIS10.1\\python.exe', 'C:\\Program Files (x86)\\ArcGIS\\Desktop10.1\\bin\\ArcMap.exe']:
    print('Resetting Path')
    sys.path = [
        #python32 for ESRI
        'C:\\windows\\system32\\python27.zip',
        'C:\\Python27\\ArcGIS10.1\\DLLs',
        'C:\\Python27\\ArcGIS10.1\\lib',
        'C:\\Python27\\ArcGIS10.1\\lib\\plat-win',
        'C:\\Python27\\ArcGIS10.1\\lib\\lib-tk',
        'C:\\Python27\\ArcGIS10.1',
        'C:\\Python27\\ArcGIS10.1\\lib\\site-packages',
        'C:\\Program Files (x86)\\ArcGIS\\Desktop10.1\\bin',
        'C:\\Program Files (x86)\\ArcGIS\\Desktop10.1\\arcpy',
        'C:\\Program Files (x86)\\ArcGIS\\Desktop10.1\\ArcToolbox\\Scripts',
        #defaults
        'C:\\Python27\\Lib\\',
        'C:\\Python27\\Lib\\site-packages',
        'C:\\pythonnet'
        ]

import arcpy 
from arcpy import env

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.