Hi,
I want to set the __name__ variable to "__main__" in the script I execute.
However, it seems that the __name__ variable always is overridden with the
filename of the executed file.
The attached example program gives the output "name: test" instead of "name:
__main__".
Googling brought up the following issues:
http://ironpython.codeplex.com/workitem/2537 - Here, they use the
PythonEngine.DefaultModule API which I cannot find.
Best regards
Markus Schaber
--
___________________________
We software Automation.
3S-Smart Software Solutions GmbH
Markus Schaber | Developer
Memminger Str. 151 | 87439 Kempten | Germany | Tel. +49-831-54031-0 | Fax
+49-831-54031-50
Email: [email protected] | Web: http://www.3s-software.com
CoDeSys internet forum: http://forum.3s-software.com
Download CoDeSys sample projects:
http://www.3s-software.com/index.shtml?sample_projects
Managing Directors: Dipl.Inf. Dieter Hess, Dipl.Inf. Manfred Werner | Trade
register: Kempten HRB 6186 | Tax ID No.: DE 167014915

using System;
using System.IO;
using IronPython.Hosting;
using Microsoft.Scripting.Hosting;
namespace IronPythonNameTest
{
public static class ScriptExecutor
{
private static void Main()
{
try
{
using (StreamWriter writer = new
StreamWriter("test.py"))
{
writer.WriteLine("print 'name:',
__name__");
}
ScriptEngine engine = Python.CreateEngine();
ScriptScope mainScope = engine.CreateScope();
mainScope.SetVariable("__name__", "__main__");
ScriptSource scriptSource =
engine.CreateScriptSourceFromFile("test.py");
scriptSource.Compile();
ScriptSource source = scriptSource;
source.Execute(mainScope);
}
finally
{
Console.WriteLine("Script Finished");
Console.ReadLine();
}
}
}
}
_______________________________________________
Ironpython-users mailing list
[email protected]
http://mail.python.org/mailman/listinfo/ironpython-users