Executando o ArcGIS 10.0 no Virtualenv

12

Estou trabalhando em um pacote Python que possui uma mistura de ferramentas de linha de comando e ferramentas do ArcToolbox. Para o desenvolvimento do Python, é realmente útil usar o VirtualEnv, especialmente ao trabalhar com instaladores. Existe uma maneira de o ArcMap ou o ArcCatalog reconhecer uma sessão atual do VirtualEnv no Python, de modo que quando uma ferramenta personalizada é executada, ela usa os caminhos e pacotes do VirtualEnv Python em vez dos caminhos e pacotes padrão do Python em c: \ Python26 \ ArcGIS10 .0?

SagebrushGIS
fonte

Respostas:

11

Isso não está embutido no aplicativo, mas presumo que executar o arquivo em lotes que configura o virtualenv em uma cmd.exesessão e, em seguida, executar o arcmap.exe da mesma caixa do DOS, obtenha seu virtualenv. ArcMap e amigos irão modificar o caminho ligeiramente para incluir os instalar do arcgisscriptinge arcpy.

Editar: você precisará chamar explicitamente o script enable_this a partir da janela do Python nos aplicativos da área de trabalho para que isso funcione. Se eu tiver um VirtualEnv c:\Users\jason\myenv, emitirei a execfile(r'C:\Users\jason\myenv\Scripts\activate_this.py', {'__file__': r'C:\Users\jason\myenv\Scripts\activate_this.py'})partir da janela Python em um aplicativo de desktop ArcGIS para executá-lo.

Jason Scheirer
fonte
Isso não parece funcionar. Criei um espaço de trabalho do VirtualEnv, ativei e instalei um pacote que desejo testar dentro do ArcCatalog. Por enquanto, tudo bem. Se eu abrir um shell Python dentro desta sessão do VirtualEnv e importar os pacotes recém-instalados - a importação funcionará. Se eu iniciar o ArcCatalog e tentar chamar um desses pacotes a partir de um script da caixa de ferramentas - ele não funcionará. Se eu olhar o sys.path no shell Python dentro do ArcCatalog, ele está mostrando o diretório Python padrão do ArcGIS 10.0 (C: \ Python26 \ ArcGIS10.0).
precisa
4
Procure usar o activate_this.pyscript também no mesmo diretório Scripts do seu VirtualEnv na janela Python no ArcCatalog e nos amigos. Consegui executar execfile(r'C:\Users\jason\myenv\Scripts\activate_this.py', {'__file__': r'C:\Users\jason\myenv\Scripts\activate_this.py'})e obter meu VirtualEnv inicializado no ArcMap.
Jason Scheirer
1
Impressionante! Isso fez o truque.
precisa