Как передать аргументы командной строки в IronPython? - PullRequest
1 голос
/ 10 мая 2011

Я работаю с IronPython и у меня все работает как-то.Тем не менее, похоже, что нет ресурсов для передачи аргументов командной строки в Iron Python.Как я могу передать аргументы командной строки в программу на Python из моего кода C #?

setup = new ScriptRuntimeSetup();
                setup.LanguageSetups.Add(IronPython.Hosting.Python.CreateLanguageSetup(null));
                runtime = new ScriptRuntime(setup);
                runtime.IO.RedirectToConsole();
                m_engine = runtime.GetEngine("IronPython");
                m_scope = m_engine.CreateScope();
                source = m_engine.CreateScriptSourceFromString("search_movie.py \""+CommandTextBox.Text+"\"", SourceCodeKind.InteractiveCode);
                source.Execute(m_scope);

Что еще мне нужно сделать здесь?Как видите, имя файла python там - search_movie.py, и в качестве аргумента используется имя фильма.

Ответы [ 2 ]

2 голосов
/ 15 января 2019

Решение Image

C # Код:

 string file = @"C:\Users\M GHOUS\Source\Repos\dotnet_python\dotnet_python\test.py";
        ScriptEngine engine = Python.CreateEngine();
        ScriptScope scope = engine.CreateScope();
        scope.SetVariable("var1", "data of var1");
        scope.SetVariable("var2", "data of var2");
        scope.SetVariable("var3", "data of var3");
        engine.ExecuteFile(file, scope);

Python:

print (var1)

print (var2)

print (var3)

1 голос
/ 13 мая 2011

Вам необходимо установить значения sys.argv.

engine.Sys.argv = List.Make(args);

Проверьте http://www.voidspace.org.uk/ironpython/custom_executable.shtml для получения более подробной информации

...