Как использовать скрипт Python в моем проекте C#?
Я хочу выполнить скрипт python в моем проекте C# скрипт python имеет несколько импортированных модулей.
Я использую библиотеку ironpython в своем проекте c# и устанавливаю для нее путь к модулям python, но она не работает и выдает мне недопустимую синтаксическую ошибку;однако в самом скрипте Python ошибки нет.
Я также использую pyinstaller для создания исполняемого файла из моего скрипта python для запуска его в моем проекте c#, но выходной исполняемый файл также не работает и выдает мне ошибку "не удалось выполнить скрипт...".
Пожалуйста, помогите мне....
Обратите внимание, что я хочу иметь возможность запускать свой проект на любых компьютерах без каких-либо проблем.
Спасибо.
Что я уже пробовал:
Мои коды скриптов python:
import speaker_verification_toolkit.tools as svt import os def MyFile(fileName): THIS_FOLDER = os.path.dirname(os.path.abspath(__file__)) my_file = os.path.join(THIS_FOLDER, fileName) return my_file def GetFiles(): Files=[] basepath = MyFile('voices/') for entry in os.listdir(basepath): if os.path.isfile(os.path.join(basepath, entry)): Files.append(os.path.join(basepath, entry)) return Files def FilesMFCC(): Signals=[] Files=GetFiles() for i in Files: s=svt.extract_mfcc_from_wav_file(MyFile(i),16000,0.025,0.01) Signals.append(svt.rms_silence_filter(s,16000,None,0.001135)) return Signals def SetResult(distance): if distance<70000: f= open(MyFile('verifylog.txt'),"w+") f.write("true") f.close() else: f= open(MyFile('verifylog.txt'),"w+") f.write("false") f.close() x=svt.extract_mfcc_from_wav_file(MyFile('voicein.wav'),16000,0.025,0.01) xx=svt.rms_silence_filter(x,16000,None,0.001135) SigList=FilesMFCC() result=svt.find_nearest_voice_data(FilesMFCC(),xx) rr=svt.rms_silence_filter(SigList[result],16000,None,0.001135) f1=svt.compute_distance(xx,rr) SetResult(f1)
Мои коды C# для запуска скрипта python:
private bool RunSpeakVerifier() { var Engine = Python.CreateEngine(); var Script = "SpeakerVerifier.py"; var source = Engine.CreateScriptSourceFromFile(Script); ICollection<string> paths = Engine.GetSearchPaths(); string dir = @"C:\Users\Mohammad Tavoosi\AppData\Local\Programs\Python\Python38\Lib\"; paths.Add(dir); string dir2 = @"C:\Users\Mohammad Tavoosi\AppData\Local\Programs\Python\Python38\Lib\site-packages"; paths.Add(dir2); Engine.SetSearchPaths(paths); source.Execute(); if (File.Exists("verifylog.txt")) { string txt = File.ReadAllText("verifylog.txt"); if (txt == "true") return true; else return false; } else return false; }
Richard MacCutchan
Где происходит синтаксическая ошибка и каково точное сообщение?
Mohammad Tavoosi
Привет
Синтаксическая ошибка возникает, когда я хочу запустить скрипт python в своем проекте C#. на этой линии:
источник.Выполнять();
и точное сообщение таково:
SyntaxErrorException был необработан
Необработанное исключение типа " Microsoft.Scripting.SyntaxErrorException' произошло в Microsoft.Dynamic.dll
Дополнительная информация: неверный синтаксис