SP1 untuk ArcGIS 10.1 memiliki ekstensi untuk Python 64-bit untuk geoproses latar belakang - implikasi untuk penggunaan Python lainnya

12

Jika 64-bit Background Geoprocessing untuk ArcGIS Desktop 10.1sp1 diinstal bagaimana pengaruhnya terhadap konfigurasi Python untuk penggunaan umum?

Esri telah merilis SP1 untuk produk ArcGIS 10.1, dan untuk komponen Desktop telah menyediakan instance Python 2.7.2 64-bit yang ketika diinstal menggantikan Esri 32-bit Python 2.7 panggilan dengan panggilan 64-bit untuk geoprocessing latar belakang (pemrosesan dikirim keluar sisi sesi ArcUI GUI Desktop aktif).

Instalasi bersifat opsional - mis. Tanpanya ArcGIS Desktop berlanjut dengan hanya ruang memori pengguna 32-bit yang tersedia. Dengan itu, entri \ bin64 dibuat ke folder program Esri, dan kunci registri dibuat untuk pemrosesan 64 bit di "HKEY_LOCAL_MACHINE \ SOFTWARE \ ESRI \ ArcGIS 10.1 SP1 untuk Desktop Background Geoprocessing (64-bit)" dan background geoprocessing kemudian dilakukan dalam ruang memori 64-bit.

Baik Esri 32-bit dan sekarang Python 64-bitnya adalah instalasi 2.7.2 yang lengkap.

Selama geoprocessing, registri Esri, path, dan file konfigurasi ditangani dengan memanggil executable Python 64-bit. Sementara penggunaan 32-bit Python dipertahankan dalam sesi ArcGIS Desktop di mana diperlukan.

Jadi, apa yang tersisa untuk setiap pengguna adalah memutuskan apakah akan mengintegrasikan 64-bit Python 2.7.2 yang terinstal ke dalam kebutuhan komputasi mereka di luar ArcGIS. Dan bagaimana cara terbaik untuk melakukannya ketika versi Python 32 dan 64 bit berada di sistem?

Ditanyakan dengan cara lain - Esri menangani integrasi Python 64-bit dalam Desktop ArcGIS-nya, jadi cara apa yang akan berfungsi untuk mengonfigurasinya selama sisa penggunaan di luar ArcGIS?

V Stuart Foote
sumber
Hanya ingin tahu, apakah Anda menggunakan Process Monitor atau semacamnya untuk memantau instalasi paket ini? Memikirkan untuk melakukan itu sendiri.
blah238
tidak, baru saja meninjau perubahan dalam sistem file dan registri
V Stuart Foote
3
Saya melakukan tes kinerja sebelum & sesudah 64bit Background Geoprocessing secara cepat - tidak yakin apakah hanya sedikit perbaikan (10%) yang diharapkan.
PolyGeo
4
@Arabella - Saya tidak akan berharap bertukar ke 32 bit untuk membuat sesuatu lebih cepat dan peningkatan 10% yang terhubung tampaknya tidak signifikan secara statistik. Perbedaan utama adalah bahwa versi 64bit akan memungkinkan geoproses menggunakan lebih dari 4GB RAM. Yang lain akan menjadi tangensial.
GIS-Jonathan
2
@ PolyGeo - Pada dasarnya, perbedaan inti antara 32bit dan 64bit adalah bahwa aplikasi 32bit tidak dapat menggunakan lebih dari 4GB RAM (mereka tidak bisa mengatasinya - sebenarnya lebih mungkin 2GB atau 3GB pada Windows tergantung pada bendera dan barang-barang). Bagaimanapun, untuk benar-benar melihat manfaat 32bit dibandingkan 64bit Anda harus melakukan tes yang akan menggunakan lebih dari ~ 4GB RAM. Tentu saja, mungkin ada optimisasi yang dilakukan ESRI di antara versi-versi, tetapi usia 32 / 64bit itu sendiri hanya berkaitan dengan penggunaan RAM pada tingkat intinya.
GIS-Jonathan

Jawaban:

1

Jadi, apa yang tersisa untuk setiap pengguna adalah memutuskan apakah akan mengintegrasikan 64-bit Python 2.7.2 yang terinstal ke dalam kebutuhan komputasi mereka di luar ArcGIS. Dan bagaimana cara terbaik untuk melakukannya ketika versi Python 32 dan 64 bit berada di sistem?

Seperti yang saya pahami, Anda menanyakan cara kami dapat membedakan berbagai versi python dan menggunakannya sesuai dengan kebutuhan kami.

Cara termudah adalah menentukan penerjemah yang tepat yang akan Anda gunakan untuk menjalankan skrip Anda. Rincian lebih lanjut dapat ditemukan di ini SO q / a.

Alex Markov
sumber
Dalam arti tertentu. Tapi saya lebih tertarik melakukan ini secara programatik selama scripting. Cara beralih PYTHONHOME dan PYTHONPATH, dan kemudian memanipulasinya dengan sys.path.append () panggilan atau site.addsitedir () untuk mengkonfigurasi ulang sistem untuk menggunakan Python 32-bit atau 64-bit. Saran dalam SO q / a hanya memanggil satu versi Python atau yang lain adalah agak kasar. Tantangannya adalah agar finesse dapat secara fleksibel menggunakan modul situs dan bekerja dengan andal dalam IDE. Di luar jalur sederhana dan manipulasi paket situs, memungkinkan untuk memiliki banyak konfigurasi Python dengan virtualenv lingkungan 32-bit dan 64-bit.
V Stuart Foote
Dalam skrip Anda, Anda dapat mencoba untuk memanggil eksekusi skrip python lain dengan memanggilnya dengan juru bahasa yang diperlukan (x32 atau x64) dari baris perintah menggunakan modul subproses misalnya.
Alex Markov
0

Bagi saya, inilah yang diperlukan ... dan saya masih tidak yakin semuanya bekerja dengan baik. Setelah saya menginstal alat Geoprocessing Latar Belakang 64bit dan mengubah PYTHONPATH saya untuk menggunakannya (dari misalnya python default), sepertinya itu mematahkan semua insde ArcMap (misalnya konsol python 32bit). Jadi saya datang dengan pekerjaan berikut ini. YMMV

1) Unduh dan jalankan alat geoprocessing latar belakang 64bit: Untungnya saya menemukannya sekali! Sepertinya saya tidak dapat menemukan tautan lagi ...

2) Tambahkan yang berikut ini ke sistem PYTHONPATH (dengan asumsi Anda menggunakan 64 bit secara default):; C: \ Python27 \ ArcGISx6410.1 \ DLL; C: \ Python27 \ ArcGISx6410.1 \ lib; C: \ Python27 \ ArcGISx6410 .1 \ lib \ plat-win; C: \ Python27 \ ArcGISx6410.1 \ lib \ lib-tk; C: \ Python27 \ ArcGISx6410.1; C: \ Program Files (x86) \ ArcGIS \ Desktop10.1 \ bin64; C: \ Program Files (x86) \ ArcGIS \ Desktop10.1 \ arcpy; C: \ Program Files (x86) \ ArcGIS \ Desktop10.1 \ ArcToolbox \ Scripts

3) Buat skrip startup untuk Arcmap Python agar tidak bingung dengan impor 64 bit dari 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

John
sumber