Uruchamianie ArcGIS 10.0 w Virtualenv

12

Pracuję nad pakietem Python, który ma mieszankę narzędzi wiersza poleceń i narzędzi ArcToolbox. Do programowania w języku Python bardzo przydatne jest użycie VirtualEnv, szczególnie podczas pracy z instalatorami. Czy istnieje sposób, aby ArcMap lub ArcCatalog rozpoznały bieżącą sesję VirtualEnv w Pythonie, aby podczas uruchamiania niestandardowych narzędzi korzystała ze ścieżek i pakietów VirtualEnv zamiast domyślnych ścieżek i pakietów Python na c: \ Python26 \ ArcGIS10 .0?

SagebrushGIS
źródło

Odpowiedzi:

11

Nie jest to wbudowane w aplikację, ale zakładam, że uruchomienie pliku wsadowego, który konfiguruje virtualenv w cmd.exesesji, a następnie uruchomienie arcmap.exe z tego samego pudełka DOS-a powinno dać ci virtualenv. ArcMap i przyjaciele będą zmodyfikować ścieżkę lekko zawierać ZAINSTALUJ arcgisscriptinga arcpy.

Edycja: musisz jawnie wywołać skrypt Activ_this z okna Python w aplikacjach komputerowych, aby to zadziałało. Jeśli mam virtualenv w c:\Users\jason\myenvwydam execfile(r'C:\Users\jason\myenv\Scripts\activate_this.py', {'__file__': r'C:\Users\jason\myenv\Scripts\activate_this.py'})z okna Python w aplikacji ArcGIS Desktop, aby dostać go w ruchu.

Jason Scheirer
źródło
To nie wydaje się działać. Utworzyłem obszar roboczy VirtualEnv, aktywowałem go, a następnie zainstalowałem pakiet, który chcę przetestować w ArcCatalog. Jak na razie dobrze. Jeśli otworzę powłokę Pythona w tej sesji VirtualEnv i zaimportuję nowo zainstalowane pakiety - import działa. Jeśli następnie uruchomię ArcCatalog i spróbuję wywołać jeden z tych pakietów ze skryptu Toolbox - to nie działa. Jeśli spojrzę na sys.path z powłoki Python wewnątrz ArcCatalog, pokazuje domyślny katalog Python dla ArcGIS 10.0 (C: \ Python26 \ ArcGIS10.0).
SagebrushGIS
4
Sprawdź użycie activate_this.pyskryptu również w tym samym katalogu Scripts VirtualEnv w oknie Python w ArcCatalog i znajomych. Udało mi się uruchomić execfile(r'C:\Users\jason\myenv\Scripts\activate_this.py', {'__file__': r'C:\Users\jason\myenv\Scripts\activate_this.py'})i uruchomić VirtualEnv z ArcMap.
Jason Scheirer
1
Niesamowite! To załatwiło sprawę.
SagebrushGIS