Не получается запустить Python скрипт из под Net Core
Есть проект на Net Core 6 Появилась необходимость запускать скрипт питона из под Net
Для питона было установлено miniconda, для соединения с кликхаусом установлен пакет clickhouse_connect. Далее установлен IronPython и IronPython STD
Проверяю выполнение скрипта вставки через Net
import clickhouse_connect
client = clickhouse_connect.get_client(host='127.0.0.1', port='8123', username='default', password='',database='default')
row = [101, 'TestPythonInsert', 1000000,'']
data = [row]
client.insert('asd',
data,
column_names=['id', 'title', 'parent_id','external_id'],
column_type_names=['UInt64','String','Nullable(UInt64)','String'])
В коде написан сервис с методом запуска
public void RunScript(string script)
{
var _engine = Python.CreateEngine();
var paths = new List<string>();
paths.Add(@"C:\Program Files\IronPython 3.4\Lib");
paths.Add(@"C:\Program Files\IronPython 3.4\DLLs");
paths.Add(@"C:\Program Files\IronPython 3.4");
paths.Add(@"C:\Program Files\IronPython 3.4\Lib\site-packages");
_engine.SetSearchPaths(paths);
using var stream = new MemoryStream(Encoding.UTF8.GetBytes(script));
if (stream == null)
throw new Exception("Error creating ScriptInstance - resource stream is null");
using var sr = new StreamReader(stream);
var _script = sr.ReadToEnd();
var source = _engine.CreateScriptSourceFromString(_script, SourceCodeKind.File);
var compiled = source.Compile();
var scope = _engine.CreateScope();
try
{
compiled.Execute(scope);
}
catch (Exception ex)
{
}
}
В каталог site-packages - добавил пакеты clickhouse_connect и все те которые были установлены из под pip
При выполнении падает на методе Execute с ошибкой "Cannot import name SafeUUID"
Что делать уже не знаю, пробовал указывать разные пути и на в текущее окружение миниконды и библиотеки, но появляются ошибки импорта с другими названиями, что делать хз.
Может кто сталкивался, что делаю не так ?