Me encontré con este pequeño problema cuando estaba buscando acceder a las instalaciones de Python desde ArcGIS, QGIS, Anaconda (citado porque SciPy y NumPy vienen con él) y la versión 2.7 vs 3. A veces, me resulta más fácil acceder a Windows Command Prompt
para haga un poco de trabajo rápido en lugar de abrir un programa SIG o IDE de python para acceder a la solicitud interactiva.
En lugar de navegar a cada carpeta, establecer accesos directos o cambiar la PATH
variable de entorno, quería una forma diferente de acceder a cada instalación de Python a través de Command Prompt
.
Editar
Los profesionales de SIG que usan python para su trabajo terminan teniendo que acceder a cada instalación de forma manual para acceder a las funciones que contiene. En lugar de esperar que se cargue algo como ArcMap, generalmente es mucho más rápido presionar su winkey -r + cmd y escribir python
en su Símbolo del sistema para iniciar la consola de Python. Si desea utilizar ArcPy
para reproyectar un archivo de forma, debe abrir la consola de Python, que está vinculada a ArcPy
. Si desea utilizar una herramienta de PyQGIS
porque no tiene la licencia ESRI adecuada, debe encontrar la python.exe
que está vinculada a esos módulos. Esto puede ser un dolor cuando se está tratando de hacer el trabajo en ArcPy
, PyQGIS
, NumPy
, oSciPy
sin tener todas las bibliotecas instaladas de forma coherente como una instalación de Python.
Por lo general, está vinculado por su Path
variable a la instalación de Python que es su valor predeterminado mientras está en el Command Prompt
. Esta pregunta y las siguientes respuestas buscan abordar cómo los profesionales de SIG podrían utilizar múltiples instalaciones de Python juntas en un solo entorno. Los IDE de Python apuntan a una sola instalación de Python y requieren cambiar la configuración para utilizar diferentes. Por ejemplo, mi PyScripter
instalación apunta a mi instalación ArcGIS de Python. Entonces, si deseo utilizar mis PyQGIS
módulos, necesito abrir QGIS o cambiar la configuración PyScripter
.
Al escribir módulos / scripts completos, tiene sentido apuntar uno individualmente. De esa manera, podría obtener algún tipo de finalización de código. Sin embargo , cuando estás utilizando algunas herramientas en cada instalación para manipular un conjunto de datos, sería mucho más agradable si se puede consolas pitón rápidamente flip / instalaciones dentro de una única pantalla también conocido como el Command Prompt
.
A aquellos que votan para cerrar / fuera de tema ...
Aunque esto obviamente se aplica a cualquier cosa a la que esté conectado el lenguaje python , para el usuario pobre de SIG que no puede permitirse comprar extensiones ESRI para herramientas de análisis de datos, sirve como una forma de simplificar su vida. Como han mostrado algunas de las respuestas, poder personalizar más este proceso, por ejemplo, agregar argumentos a los .cmd
archivos, podría ser de gran utilidad si alguien ejecuta un proceso personalizado. Existe la posibilidad de que un usuario de SIG / computadora más inteligente pueda configurar .cmd
archivos personalizados para ejecutar procesos rápidamente sin tener que pasar por el alboroto de lidiar con las diferentes instalaciones de software IDE / GIS, etc.
El único inconveniente de ejecutar una consola de Python dentro Command Prompt
es la pérdida de la finalización del código. Sin embargo, si ejecuta algo suficiente, como arcpy.AddField_management()
, la finalización del código simplemente se interpone en el camino.
Respuestas:
Voy a ofrecer una alternativa que creo que es un poco más limpia. Está inspirado en una combinación de la sugerencia de Josef y un patrón común en los sistemas * nix.
Comience creando un directorio. Este directorio se utilizará para contener archivos "alias" para cada instalación. Entonces algo como
C:\Python\aliases
oC:\PythonAliases
funcionará.Luego cree un script para cada instalación. Cada script esencialmente alias una de las instalaciones de Python a las que necesita hacer referencia simplemente llamando a su ejecutable. Por ejemplo, el contenido se vería así para la instalación de QGIS:
Guárdelo con un nombre descriptivo en la carpeta que creó, como
pyqgis.cmd
opyqgis.bat
.En su lugar,
%*
pasa todos los argumentos que se le dieron al script al ejecutable de Python. Entonces puedes hacer esto:(El
@
símbolo simplemente evita que el símbolo del sistema repita innecesariamente el comando).Agregue el directorio que contiene estos scripts a
PATH
. Ahora puede llamarlos sin la ruta completa:Esto tiene varias ventajas, en mi opinión:
PATH
una vez. Obtener nuevas instalacionesPATH
o eliminar las antiguas es una simple gestión de archivos.python2
ypython3
en elbin
directorio en una máquina * nix. Si bien esto no es exactamente lo mismo, creo que es lo suficientemente similar como para que tenga sentido que alguien sepa que esto se hace en los sistemas * nix.No estoy completamente satisfecho con esta configuración, pero no creo que pueda hacer mucho mejor en Windows.
fuente
Decidí jugar con la
System Variables
parte de laEnvironment Variables
configuración para ver si puedo facilitar el acceso a cada instalación de Python mientras estoy en elCommand Prompt
. Descubrí que podía agregar uno nuevoSystem Variable
y llamarlo desde elCommand Prompt
para acceder a la instalación de Python que quisiera.Algunos ejemplos:
Variable =
PyQGIS
Valor ="C:\Program Files\QGIS Dufour\bin\Python.exe"
Dejé las comillas dobles allí para no tener que citar el espacio en el
Command Prompt
para mantener toda la cadena unida como un solo argumentoVariable =
Anaconda
Valor =AnacondaDirectory\Python.exe
Cómo accedo a mis instalaciones de scipy / numpy / etc
Variable =
Python3
Valor =C:\Python34\Python.exe
Python 3 incluye un lanzador que le permite especificar la versión ... >>
py -3
para python 3 ... información aquíPara llamar a
System Variable
en elCommand Prompt
:Cuando esté en el
Command Prompt
, puede llamar a su variable escribiendo%VariableName%
en el símbolo del sistema. Para cada instalación de Python, se navegará hacia{Directory}\Python.exe
para abrir el intérprete interactivo. Si no cotizó un Valor que tiene espacios, debe agregar comillas alrededor de su llamada variable, ej."%VariableValueWithSpaces%"
. Sin las comillas, la línea se divide por los espacios para que su programa no se inicie.Estoy seguro de que probablemente haya formas más fáciles de hacer las cosas, pero descubrí que esto es un conocimiento útil si eres especialmente aficionado a usar
Command Prompt
Windows. Me gusta la capacidad de acceder a instalaciones individuales de Python simplemente proporcionando un nombre de variable diferente.fuente
@set PATH=C:\Python34\;%PATH%
. Luego, simplemente ingresando python34 hará que esta python esté disponible.Path
variable?