Eu deparei com esse pequeno problema quando procurava acessar instalações python do ArcGIS, QGIS, Anaconda (citadas porque SciPy e NumPy vêm com ele) e a versão 2.7 vs 3. Às vezes, acho mais fácil simplesmente acessar o Windows ' Command Prompt
para faça um pouco de trabalho rápido em vez de abrir um programa GIS ou IDE python para acessar o prompt interativo.
Em vez de navegar para cada pasta, definir atalhos ou alternar a PATH
variável de ambiente, eu queria uma maneira diferente de acessar cada instalação python via Command Prompt
.
Editar
Os profissionais de GIS que usam python em seu trabalho acabam tendo que acessar cada instalação manualmente para acessar os recursos contidos nela. Em vez de esperar que algo como o ArcMap seja carregado, geralmente é muito mais rápido pressionar o seu winkey -r + cmd e digitar python
no prompt de comando para iniciar o console python. Se você deseja usar ArcPy
para reprojetar um arquivo shapefile, é necessário abrir o console python ao qual está vinculado ArcPy
. Se você deseja usar uma ferramenta PyQGIS
porque não possui a licença ESRI apropriada, precisa encontrar a python.exe
que está vinculada a esses módulos. Esta pode ser uma dor quando você está tentando fazer o trabalho em ArcPy
, PyQGIS
, NumPy
, ouSciPy
sem ter todas as bibliotecas instaladas de forma coesa, como uma instalação python.
Normalmente, você está vinculado à sua Path
variável à qual a instalação do python é o padrão enquanto estiver no Command Prompt
. Esta pergunta e as respostas a seguir abordam como os profissionais de GIS podem utilizar várias instalações python juntas em um único ambiente. Os IDEs do Python têm como alvo uma única instalação do python e exigem alterações nas configurações para utilizar diferentes. Por exemplo, minha PyScripter
instalação tem como alvo minha instalação do Python no ArcGIS. Portanto, se eu quiser utilizar meus PyQGIS
módulos, preciso abrir o QGIS ou alterar as configurações PyScripter
.
Ao escrever módulos / scripts completos, faz sentido segmentar um individualmente. Dessa forma, você pode obter algum tipo de conclusão de código. No entanto , quando você está apenas utilizando algumas ferramentas em cada instalação de manipular um conjunto de dados, seria muito mais agradável se você puder consoles python rapidamente aleta / instalações dentro de uma única tela aka o Command Prompt
.
Para aqueles que votam para fechar / off-topic ...
Embora isso obviamente se aplique a qualquer coisa à qual a linguagem python esteja anexada , para o usuário pobre de GIS que não pode comprar extensões ESRI para ferramentas de análise de dados, ele serve como uma maneira de simplificar sua vida. Como algumas das respostas mostraram, ser capaz de personalizar mais esse processo, por exemplo, adicionar argumentos aos .cmd
arquivos, pode ser de grande utilidade se alguém estiver executando um processo personalizado. Existe a possibilidade de um usuário de GIS / computador mais experiente ser capaz de configurar .cmd
arquivos personalizados para executar processos rapidamente, sem precisar se preocupar em lidar com diferentes instalações de software de IDEs / GIS etc.
A única desvantagem da execução de um console python no diretório Command Prompt
é a perda da conclusão do código. No entanto, se você executar algo o suficiente, como arcpy.AddField_management()
, a conclusão do código fica no caminho.
Respostas:
Vou oferecer uma alternativa que eu acho que é um pouco mais limpa. É inspirado por uma combinação da sugestão de Josef e um padrão comum nos sistemas * nix.
Comece criando um diretório. Este diretório será usado para armazenar arquivos "alias" para cada instalação. Então, algo como
C:\Python\aliases
ouC:\PythonAliases
vai funcionar.Em seguida, crie um script para cada instalação. Cada script aliases essencialmente uma das instalações do Python que você precisa referenciar simplesmente chamando de executável. Por exemplo, o conteúdo ficaria assim para a instalação do QGIS:
Salve-o com um nome descritivo na pasta que você criou, como
pyqgis.cmd
oupyqgis.bat
.Ele
%*
passa todos os argumentos que foram fornecidos ao script para o executável Python. Então você pode fazer isso:(O
@
símbolo apenas impede que o prompt de comando faça eco desnecessário no comando.)Adicione o diretório que contém esses scripts a
PATH
. Agora você pode chamá-los sem o caminho completo:Isso tem várias vantagens, na minha opinião:
PATH
uma vez. Obter novas instalaçõesPATH
ou remover antigas é simples gerenciamento de arquivos.python2
epython3
nobin
diretório em uma máquina * nix. Embora isso não seja exatamente o mesmo, acho que é semelhante o suficiente para que faça algum sentido para alguém saber que isso é feito em sistemas * nix.Não estou totalmente satisfeito com essa configuração, mas acho que você não pode fazer muito melhor no Windows.
fonte
Decidi brincar com a
System Variables
parte dasEnvironment Variables
configurações para ver se posso facilitar o acesso a cada instalação python enquanto estiver noCommand Prompt
. Eu descobri que poderia adicionar um novoSystem Variable
e chamá-lo doCommand Prompt
para acessar a instalação python que eu queria.Alguns exemplos:
Variável =
PyQGIS
Valor ="C:\Program Files\QGIS Dufour\bin\Python.exe"
Deixei as aspas duplas lá para não precisar citar o espaçamento no
Command Prompt
para manter toda a string unida como um único argumentoVariável =
Anaconda
Valor =AnacondaDirectory\Python.exe
Como acesso minhas instalações do scipy / numpy / etc
Variável =
Python3
Valor =C:\Python34\Python.exe
O Python 3 inclui um iniciador que permite especificar a versão ... >>
py -3
para o python 3 ... informações aquiPara chamar um
System Variable
noCommand Prompt
:Quando estiver no
Command Prompt
, você pode chamar sua variável digitando%VariableName%
no prompt de comando. Para cada instalação do python, ele navegará até o{Directory}\Python.exe
para abrir o intérprete interativo. Se você não citou um Valor que possui espaços, é necessário adicionar aspas à sua chamada variável, ex."%VariableValueWithSpaces%"
. Sem as aspas, a linha é dividida pelos espaços para que seu programa não inicie.Tenho certeza de que provavelmente existem maneiras mais fáceis de fazer as coisas, mas achei que esse é um conhecimento útil se você gosta especialmente de usar o
Command Prompt
no Windows. Eu gosto da capacidade de acessar instalações python individuais apenas fornecendo um nome de variável diferente.fonte
@set PATH=C:\Python34\;%PATH%
. Então, basta digitar python34 disponibilizará esse python.Path
variável?