Python.Net – Cómo ejecutar un script de Python desde un archivo (.py)
Cómo ejecutar archivos .py y llamar a una función utilizando la biblioteca python.Net.
He intentado el siguiente código pero no se está ejecutando.
using (Py.GIL()){
var fromFile = PythonEngine.Compile(null, @"C:\PycharmProjects\pythonenet\main.py", RunFlagType.File);
fromFile.InvokeMethod("replace");
}
Archivo main.py:
import re
def replace():
print(re.sub(r"\s","*","Python is a programming langauge"))
Cuando intento ejecutarlo desde una cadena, funciona.
using (Py.GIL()){
string co = @"def someMethod():
print('This is from static script')";
var fromString = PythonEngine.ModuleFromString("someName", co);
fromString.InvokeMethod("someMethod");
}
davy.ai
Para ejecutar archivos .py y llamar funciones utilizando la biblioteca python.NET, puedes usar el siguiente código:
En el ejemplo anterior, primero adquirimos el bloqueo global del intérprete (GIL) usando la instrucción
using (Py.GIL()){...}
. Luego compilamos el archivomain.py
utilizando el métodoPythonEngine.CompileFile()
y almacenamos el resultado en la variablefromFile
.Para llamar a la función
replace()
en el módulomain
, utilizamos el métodoPythonEngine.ImportModule()
para importar el módulomain
y almacenarlo en la variablemodule
. Luego, podemos llamar a la funciónreplace()
utilizando la sintaxismodule.replace()
.Alternativamente, si deseas ejecutar un script desde una cadena de texto, puedes utilizar el método
PythonEngine.ModuleFromString()
como se muestra en tu segundo ejemplo de código.