IronTextBoxControl2 포크에 [rlcompleter][1]
기능을 추가하려고합니다 (RevitPythonShell). rlcompleter.py
에서IronPython 2.0을 호스팅 할 때 "__main__"모듈을 게시하는 방법은 무엇입니까?
import __main__
:
그러나, 나는 라인 하드에 문제가 있어요. 내가 그런 모듈을 가지고 있지 않기 때문입니다. 필자는 IronPython 2.0 코드베이스를 검색하여 모듈을 게시하는 방법을 찾아 내려고했습니다.
으로 IronPython.Runtime.PythonContext
의 인스턴스에서 처리 할 수 있습니다. 하지만 다음에 문제가 있어요 :
- 내가이 무엇
PythonModule
예를
을 얻는 PythonContext
예를
ScriptEngine
과 ScriptScope
입니다. 범위를 모듈 __main__
으로 게시하고 싶습니다. 내가 알기로 범위는 이미 모듈에 부착되어 있지만 액세스 방법을 알 수는 없습니다. 여기 내가 함께이 넥타이 싶습니다 코드의 포인트입니다 : /// <summary>
/// Set up an IronPython environment - for interactive shell or for canned scripts
/// </summary>
public void SetupEnvironment(ScriptEngine engine, ScriptScope scope)
{
// add variables from Revit
scope.SetVariable("__revit__", _commandData.Application);
scope.SetVariable("__commandData__", _commandData);
scope.SetVariable("__message__", _message);
scope.SetVariable("__elements__", _elements);
scope.SetVariable("__result__", (int)Result.Succeeded);
// add preconfigures variables
scope.SetVariable("__vars__", RevitPythonShellApplication.GetVariables());
/* register scope as __main__ module here?! */
// add the search paths
AddSearchPaths(engine);
}