c# - 从 Iron Python 脚本(从 C# 脚本引擎调用)调用 Python 脚本时出现问题

标签 c# python asp.net python-2.7 ironpython

我正在使用 C# 调用 Iron Python 脚本

        ScriptRuntimeSetup setup = Python.CreateRuntimeSetup(null);
        ScriptRuntime runtime = new ScriptRuntime(setup);
        ScriptEngine engine = Python.GetEngine(runtime);

        ScriptSource source = engine.CreateScriptSourceFromFile("C:/KitGenerator/KitGenerator/LoadKitsFromDatabase.py");
        ScriptScope scope = engine.CreateScope();
        source.Execute(scope);

这工作正常,并且使用打印输出我已经证明代码运行正确。 然而,铁Python脚本内部是对另一个Python脚本的调用

os.system("ipython C:\KitGenerator\Kit-Generator\GenerateKitImages.py")

(我已经尝试过(ipython“GenerateKitImages.py”)

问题: 当我使用 Ipy.exe 运行第一个 Iron Python 脚本时,两者都运行得很好并且按预期执行。 然而,当我使用 C# 脚本引擎运行第一个 Iron Python 脚本时,它只运行第一个脚本,而永远不会调用第二个脚本。

我对这个迷失了。我可以确认这与:权限、依赖关系无关。

奖励能够解决这个问题的人的金牌和披萨。

最佳答案

首先,os.system 调用应使用原始 (r"") 字符串:

os.system(r"ipython C:\KitGenerator\Kit-Generator\GenerateKitImages.py")

否则反斜杠会导致问题。

但是,既然您说它可以从 ipy.exe 运行,我的猜测是 ipython 在您的 PATH 上。在第一种情况下,而不是在第二种情况下。您可以设置路径 environment variable from C# ,在 os.system 调用中包含 ipython 的完整路径,或者确保在调用 C# 程序之前设置 PATH,通过 changing it globally .

关于c# - 从 Iron Python 脚本(从 C# 脚本引擎调用)调用 Python 脚本时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23540828/

相关文章:

c# - 在 C# Windows 应用程序中存储静态用户数据

c# - 使用RX同步多个事件

c# - Entity Framework 错误...属性无法设置为 'System.Int16' 值

python - scipy盆地跳跃接受测试: what is f_new and f_old

python - 在循环中附加到 numpy 数组的最干净的方法是什么?

c# - 使用 CSS 使 <li> 高两行?

c# - asp.net、c#、用户提供的连接字符串和查询

python - Pylons 用户身份验证是我们自己的还是 openid 或替代方案?

c# - 如何在连接表上使用 LINQ?

c# - Asp.Net 单例模式场景