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?

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.


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
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.