5 votos

Comprobar de qué aplicación se lanzó la caja de herramientas de Python?

Esri documentación en cajas de herramientas de Python estados, " Cuando el script se ejecuta como una herramienta de secuencia de comandos, arcpy es plenamente consciente de la aplicación (como ArcMap) fue llamado.'

¿Cómo puedo verificar la aplicación que lanzó la caja de herramientas de Python herramienta?

Tengo un parámetro que permite al usuario el uso de la pantalla medida como el área de interés, pero sólo funciona en ArcMap. Me gustaría deshabilitar el parámetro Booleano si se lanzan desde ArcCatalog.

5voto

Flinkman Puntos 4821

Basado en https://stackoverflow.com/questions/404744/determining-application-path-in-a-python-exe-generated-by-pyinstaller escribí un pequeño script, se añadió a una caja de herramientas y ejecutado en ArcMap y ArcCatalog:

import os, sys, arcpy

arcpy.AddMessage(os.path.basename(sys.executable))

Esto devuelve ArcCatalog.exe si se ejecuta en el catálogo, ArcMap.exe si se ejecuta en arcmap y python.exe si se ejecuta en una ventana de CMD. Aun cuando el caso parece bastante constante, me gustaría hacer una comparación de cadena en mayúsculas o en minúsculas como este:

if os.path.splitext(os.path.basename(sys.executable))[0].lower() == 'arcmap':

Porque el caso de ArcMap no está garantizado para estar en constante entre versiones.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X