我在Visual Studio Winform C#解决方案中添加了IronPython Nuget包,以使用代码中的Python脚本。
以下是我的代码:
private void BtnJsonPy_Click(object sender, EventArgs e)
{
// 1. Create Engine
var engine = Python.CreateEngine();
//2. Provide script and arguments
var script = @"C:\path\repos\SamplePy\SamplePy2\SamplePy2.py"; // provide full path
var source = engine.CreateScriptSourceFromFile(script);
// dummy parameters to send Python script
int x = 3;
int y = 4;
var argv = new List<string>();
argv.Add("");
argv.Add(x.ToString());
argv.Add(y.ToString());
engine.GetSysModule().SetVariable("argv", argv);
//3. redirect output
var eIO = engine.Runtime.IO;
var errors = new MemoryStream();
eIO.SetErrorOutput(errors, Encoding.Default);
var results = new MemoryStream();
eIO.SetOutput(results, Encoding.Default);
//4. Execute script
var scope = engine.CreateScope();
var lib = new[]
{
"C:\\path\\SamplePy\\packages\\IronPython.2.7.9\\lib",
"C:\\path\\SamplePy\\packages\\IronPython.2.7.9",
};
engine.SetSearchPaths(lib);
engine.ExecuteFile(script, scope);
//source.Execute(scope);
//5. Display output
string str(byte[] x1) => Encoding.Default.GetString(x1);
Console.WriteLine("Errrors");
Console.WriteLine(str(errors.ToArray()));
Console.WriteLine();
Console.WriteLine("Results");
Console.WriteLine(str(results.ToArray()));
}
我收到有关未安装模块的错误。因此,我打开了IronPython驻留在我的代码解决方案中的packages文件夹,并尝试使用pip安装模块,但是命令提示符始终告诉您pip无法识别。
我尝试了以下操作,打开命令提示符,将目录更改为具有IronPython软件包的代码文件,并使用pip命令,但失败。我也尝试了“ python -m pip install pillow”命令,但这也失败了。
那么我应该独立于“ ironpython.net/download”安装IronPython,然后在保存IronPython的路径上安装必要的模块,然后在代码中使用这些引用吗?这种方法行得通吗?。
任何建议,文档或代码方法都很好。
在此先感谢!!! ..