Menjalankan ArcGIS 10.0 Di bawah Virtualenv

12

Saya sedang mengerjakan paket Python yang memiliki campuran alat baris perintah dan alat ArcToolbox. Untuk pengembangan Python sangat berguna untuk menggunakan VirtualEnv, terutama ketika bekerja dengan installer. Apakah ada cara untuk membuat ArcMap atau ArcCatalog mengenali sesi VirtualEnv saat ini di Python, sehingga ketika alat kustom dieksekusi menggunakan jalur dan paket Python VirtualEnv alih-alih jalur dan paket Python default di c: \ Python26 \ ArcGIS10 .0?

SagebrushGIS
sumber

Jawaban:

11

Itu tidak dibangun ke dalam aplikasi, tapi saya berasumsi menjalankan file batch yang mengatur virtualenv dalam suatu cmd.exesesi dan kemudian menjalankan arcmap.exe dari kotak DOS yang sama akan membuat Anda virtualenv Anda. ArcMap dan teman-teman akan sedikit memodifikasi jalur untuk menyertakan instalasi arcgisscriptingdan arcpy.

Sunting: Anda harus memanggil skrip activ_this secara eksplisit dari dalam jendela Python di aplikasi desktop untuk membuatnya berfungsi. Jika saya memiliki VirtualEnv di c:\Users\jason\myenvsaya akan mengeluarkan execfile(r'C:\Users\jason\myenv\Scripts\activate_this.py', {'__file__': r'C:\Users\jason\myenv\Scripts\activate_this.py'})dari jendela Python di aplikasi desktop ArcGIS untuk membuatnya berjalan.

Jason Scheirer
sumber
Tampaknya itu tidak berhasil. Saya membuat ruang kerja VirtualEnv, mengaktifkannya, lalu menginstal paket yang ingin saya uji di dalam ArcCatalog. Sejauh ini baik. Jika saya membuka shell Python di dalam sesi VirtualEnv ini dan mengimpor paket yang baru diinstal - impor berfungsi. Jika saya kemudian meluncurkan ArcCatalog dan mencoba memanggil salah satu paket ini dari skrip toolbox - itu tidak berfungsi. Jika saya melihat sys.path dari shell Python di dalam ArcCatalog, itu menunjukkan direktori Python default untuk ArcGIS 10.0 (C: \ Python26 \ ArcGIS10.0).
SagebrushGIS
4
Lihat juga menggunakan activate_this.pyskrip di direktori Skrip yang sama dengan VirtualEnv Anda dari jendela Python di ArcCatalog dan teman-teman. Saya dapat mengeksekusi execfile(r'C:\Users\jason\myenv\Scripts\activate_this.py', {'__file__': r'C:\Users\jason\myenv\Scripts\activate_this.py'})dan mendapatkan VirtualEnv saya bootstrap dari dalam ArcMap.
Jason Scheirer
1
Luar biasa! Itu berhasil.
SagebrushGIS