I have an embedded scripting engine in my C# application that uses IronPython 2. I create the Python runtime and add a few classes to the global namespace so that the script can import them as modules.
However, one (pretty basic) thing I can't figure out is how to send script arguments. I realize that I could just create a variable with a list of arguments, but there must be a proper way to do it. Also, doing it in the proper 'Python' way allows me to compile the scripts and use an automated document builder called Sphinx. So the ultimate goal is to be able to use:
import sys
sys.argv
In one of my scripts and have it get the arguments the user specified (through the C# app).
Right now, I call the script by using:
// set up iron python runtime engine
_engine = Python.CreateEngine();
_runtime = _engine.Runtime;
_scope = _engine.CreateScope();
// run script
_script = _engine.CreateScriptSourceFromFile(_path);
_script.Execute(_scope);
And I've tried searching for an API to add script arguments with no luck. I've also tried appending them to the script path (_path in example) with no luck. I tried with CreateScriptSourceFrom File and CreateScriptSourceFromSting (which was a long shot anyway...).
Is what I'm trying to do even possible?
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…