Запуск ArcGIS 10.0 под Virtualenv

12

Я работаю над пакетом Python, в котором есть набор инструментов командной строки и инструментов ArcToolbox. Для разработки на Python действительно полезно использовать VirtualEnv, особенно при работе с установщиками. Есть ли способ заставить ArcMap или ArcCatalog распознавать текущий сеанс VirtualEnv в Python, чтобы при выполнении пользовательских инструментов использовались пути и пакеты Python VirtualEnv вместо путей и пакетов Python по умолчанию в c: \ Python26 \ ArcGIS10 +0,0?

SagebrushGIS
источник

Ответы:

11

Это не встроено в приложение, но я предполагаю, что запуск командного файла, который устанавливает virtualenv в cmd.exeсеансе, а затем запуск arcmap.exe из того же DOS-бокса, даст вам ваш virtualenv. ArcMap и друзья будут немного изменить путь для включения установки - х arcgisscriptingи arcpy.

Редактировать: вам нужно будет явно вызвать скрипт activ_this из окна Python в настольных приложениях, чтобы заставить это работать. Если у меня есть VirtualEnv, c:\Users\jason\myenvя буду запускать его execfile(r'C:\Users\jason\myenv\Scripts\activate_this.py', {'__file__': r'C:\Users\jason\myenv\Scripts\activate_this.py'})из окна Python в приложении ArcGIS для настольных ПК.

Джейсон Шайрер
источник
Это не похоже на работу. Я создал рабочее пространство VirtualEnv, активировал его, а затем установил пакет, который хочу протестировать, внутри ArcCatalog. Все идет нормально. Если я открою оболочку Python в этом сеансе VirtualEnv и импортирую только что установленные пакеты - импорт работает. Если я затем запусту ArcCatalog и попытаюсь вызвать один из этих пакетов из скрипта панели инструментов - он не работает. Если я посмотрю на sys.path из оболочки Python внутри ArcCatalog, он показывает каталог Python по умолчанию для ArcGIS 10.0 (C: \ Python26 \ ArcGIS10.0).
SagebrushGIS
4
Изучите использование activate_this.pyскрипта также в том же каталоге Scripts вашего VirtualEnv из окна Python в ArcCatalog и у друзей. Я смог выполнить execfile(r'C:\Users\jason\myenv\Scripts\activate_this.py', {'__file__': r'C:\Users\jason\myenv\Scripts\activate_this.py'})и загрузить мой VirtualEnv из ArcMap.
Джейсон Шейрер,
1
Потрясающие! Это добилось цели.
SagebrushGIS