gpt4 book ai didi

c# - 脚本参数和嵌入式 IronPython

转载 作者:太空狗 更新时间:2023-10-30 00:47:02 26 4
gpt4 key购买 nike

我的 C# 应用程序中有一个使用 IronPython 2 的嵌入式脚本引擎。我创建了 Python 运行时并将一些类添加到全局命名空间,以便脚本可以将它们作为模块导入。

但是,我想不通的一件事(非常基本)是如何发送脚本参数。我意识到我可以只创建一个带有参数列表的变量,但必须有一个正确的方法来做到这一点。此外,以正确的“Python”方式进行操作允许我编译脚本并使用名为 Sphinx 的自动文档生成器。所以最终目标是能够使用:

import sys
sys.argv

在我的一个脚本中让它获取用户指定的参数(通过 C# 应用程序)。

现在,我使用以下方法调用脚本:

// set up iron python runtime engine
_engine = Python.CreateEngine();
_runtime = _engine.Runtime;
_scope = _engine.CreateScope();

// run script
_script = _engine.CreateScriptSourceFromFile(_path);
_script.Execute(_scope);

我曾尝试搜索 API 来添加脚本参数,但没有成功。我也尝试过将它们附加到脚本路径(示例中的 _path),但没有成功。我尝试使用 CreateScriptSourceFrom File 和 CreateScriptSourceFromSting(无论如何这是一个远景......)。

我正在尝试做的事情是否可行?

最佳答案

当您创建引擎时,您可以添加一个包含您的参数的“Arguments”选项:

IDictionary<string, object> options = new Dictionary<string, object>();
options["Arguments"] = new [] { "foo", "bar" };
_engine = Python.CreateEngine(options);

现在sys.argv将包含 ["foo", "bar"] .

可以设置options["Arguments"]任何实现 ICollection<string> 的东西.

关于c# - 脚本参数和嵌入式 IronPython,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1601364/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com