Cách được khuyến nghị để thực hiện việc này là sử dụng IronPython. Có một câu trả lời khác đi qua các khái niệm cơ bản khi sử dụng IronPython để truy cập mã Python từ C#: How do I call a specific Method from a Python Script in C#?
Nếu IronPython không phải là lựa chọn, bạn có thể chạy hàm từ dòng lệnh và truyền vào lập luận khi cần thiết, mặc dù cho bất cứ điều gì phức tạp này có thể biến thành spaghetti. Dưới đây là một ví dụ cơ bản của chạy một hàm trăn trong một mô-đun trực tiếp từ dòng lệnh:
python -c 'import foo; print foo.hello()'
Vì vậy, để chạy trên trong C#:
System.Diagnostics.Process process = new System.Diagnostics.Process();
System.Diagnostics.ProcessStartInfo startInfo = new System.Diagnostics.ProcessStartInfo();
startInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
startInfo.FileName = "python.exe";
startInfo.Arguments = "-c import foo; print foo.hello()";
process.StartInfo = startInfo;
process.Start();
Lưu ý rằng nếu bạn đang cố gắng để có được một trở lại giá trị trở lại, trong trường hợp này bạn sẽ phải in dữ liệu vào giao diện điều khiển và sau đó serialize đầu ra từ C# như bạn thấy phù hợp. Điều này có thể có khả năng có vấn đề nếu chức năng xuất ra bất cứ điều gì để bàn điều khiển trên riêng của nó, trừ khi bạn lọc nó ra hoặc có một tùy chọn để đàn áp đầu ra từ chức năng đó.
Nguồn
2016-02-17 16:46:45
Bạn đã nhìn pythonnet? – denfromufa