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?

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.


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
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.