¿Hacer un botón que llame a Python script como comando en lugar de herramienta de script?


12

Creo que en Arc9.3, los comandos podrían crearse usando scripts VBA. Para agregar un comando personalizado, debe navegar a Personalizar> Barras de herramientas> Personalizar ... y hacer clic en UIControls. Sin embargo, UIControls no está disponible en la versión 10.

Estoy creando dos guiones separados para un proyecto de libro de mapas. Un script guardará la configuración de diseño en una tabla, y el otro actualizará el diseño con la configuración de la misma tabla. Quiero que estos dos scripts sean comandos asignados a botones en una barra de herramientas. Los creé como herramientas de script, pero cada vez que hago clic en ellos, ejecutan el script como una herramienta de geoprocesamiento. Aparece una ventana de progreso, y tarda aproximadamente 10 veces más en ejecutarse que si hubiera ejecutado el código en la ventana de línea de comando de Python. No quiero la ventana de progreso o el tiempo de ejecución mucho más largo.

¿Cómo puedo hacer que el script no se considere una "herramienta" y, en cambio, sea un comando similar al botón Guardar?

Respuestas:


6

Dentro de una macro de Excel VBA, lo siguiente llama a un script de Python llamado test.py:

Sub test()

rsp = Shell(Environ$("COMSPEC") & " /c C:/test.py", vbNormalFocus)

End Sub

(Fuente original aquí ) He olvidado cómo ejecutar un módulo ArcGIS VBA, pero tal vez una línea similar funcionaría para llamar a su script de Python.


Otra estrategia que podría funcionar podría ser compilar su script de Python en un archivo ejecutable (.exe) o por lotes (.bat) y llamarlo entonces.


Acabo de ver otra respuesta en gis.se que es más elegante:

Private Sub python_Click()
    Shell "C:\Python25\python.exe ""C:\rowcount.py"
End Sub

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.