tercoide   04-01-2024, 15:40
#1
Esta librería permite abrir/editar/guardar archivos DXF:

https://ezdxf.readthedocs.io/en/stable/i...ction.html

Esta pensada para ser usada en Python, pero me preguntaba si es posible usarla en Gambas con llamadas Extern tal como hacemos con las librerías en C. Alguien tiene experiencia en el tema?
Última modificación: 06-01-2024, 15:41 por tercoide.

"Es mejor saber todo de muy poco que muy poco de todo" - anonimo
tercoide   06-01-2024, 15:40
#2
Encontre la respuesta, se llama Incrustar codigo de Pythhon, y puede hacerse directamente armando un Script y corriendolo mediante un Shell:

https://docs.python.org/3/extending/embedding.html

Entonces la estrategia seria armar un archivo de texto con el codigo Python.

Voy a tratar de hacer un ejemplo.

La verdad es que era mas fácil de lo que creí !!! Big Grin
Código:
' Gambas module file

Public Sub Main()

  Print "Hello world"

  Shell "python3 first-script.py"

End
Código:
#first-script.py
x = 1
if x == 1:
    # indented four spaces
    print("x is 1.")
    print("Good bye Python")
    print("Gambas es mejor")
   

[Imagen: Mnf768I.png]
Última modificación: 06-01-2024, 16:14 por tercoide.

"Es mejor saber todo de muy poco que muy poco de todo" - anonimo
guizans   07-01-2024, 13:53
#3
Está genial, pero tengo un par de dudas.

La primera es como se hace para pasar los parámetros correspondientes, que será lo que necesites.

Y la segunda es: ¿Se pausa el programa de Gambas mientras se ejecuta el de Python? Lo digo por si el de Python tarda no vaya a ser que el programa de Gambas continue la ejecución.

Un saludo.
cogier   07-01-2024, 15:01
#4
Cita:Y la segunda es: ¿Se pausa el programa de Gambas mientras se ejecuta el de Python? Lo digo por si el de Python tarda no vaya a ser que el programa de Gambas continue la ejecución.
 
Código:
Shell "python3 first-script.py" Wait

¡Todo va bien!
Última modificación: 07-01-2024, 15:03 por cogier.
tercoide   07-01-2024, 15:37
#5
(07-01-2024, 13:53)guizans escribió: La primera es como se hace para pasar los parámetros correspondientes, que será lo que necesites.

No se si pueden "comunicarse" ambos programas, creería que no. Tal vez usando DBus , del cual no se absolutamente nada. Para lo que yo lo necesito me basta que lo hagan mediante un archivo temporal.

"Es mejor saber todo de muy poco que muy poco de todo" - anonimo
Shell   05-04-2024, 22:07
#6
(07-01-2024, 15:37)tercoide escribió: No se si pueden "comunicarse" ambos programas, creería que no

Eso es lo que seria interesante. Aunque para eso y (sobre todo, si tienes conocimiento ) ya está el lenguaje "C".
Aunque me gusta Python,  ¿ para qué quieres mezclar Gambas y Python ?. Cada uno hace las cosas a su manera.

Ejecutar un código de Python desde Gambas, no es nada diferente a ejecutar un comando de bash.
Como dijiste combinar, entendí que era compartir información.

Se puede tomar la salida estándar del comando de Python. No se me ha ocurrido. Rolleyes
No lo veo. A cada cual lo suyo.

Saludos

"El conocimiento es la mejor inversión que se puede hacer" - Abraham Lincoln
vuott   02-08-2024, 01:59
#7
(06-01-2024, 15:40)tercoide escribió: La verdad es que era mas fácil de lo que creí
En realidad, simplemente has lanzado un 'programa externo' a través de la instrucción 'Shell' de Gambas.
Diferente es el uso de la palabra clave 'Extern' de Gambas para manejar directamente las funciones de las librerias externas, escritas en lenguaje C.

(05-04-2024, 22:07)Shell escribió: Se puede tomar la salida estándar del comando de Python.

Creo que si quieres usar la instrucción "Shell", como tercoide sugirió, puedes manejar el flujo de datos con la clase Process.
Última modificación: 02-08-2024, 02:07 por vuott.

« Los horizontes perdidos nunca regresan. » (F. Battiato, 1983)

« Las ondas nunca regresan. » (Genesis: Ripples, 1976)

« Vita non suavis esse potest, nec Mors amara. »  (...vuott)
  
Usuarios navegando en este tema: 1 invitado(s)
Powered By MyBB, © 2002-2024 MyBB Group.
Made with by Curves UI.