私が取り組んでいるプログラムを変更する方法として、IronPython を C# に埋め込んでいます。そのため、一度に使用する必要がある複数のファイルがあります。
Code = "";
Engine = Python.CreateEngine();
Runtime = Engine.Runtime;
var files = Directory.GetFiles("script", "*.py", SearchOption.AllDirectories);
foreach (var tr in files.Select(file => new StreamReader(file)))
{
Code += "\n";
Code += tr.ReadToEnd();
tr.Close();
}
Scope = Engine.CreateScope();
Engine.CreateScriptSourceFromString(AddImports(Code)).Execute(Scope);
これは /script 内のすべてのファイルを取得し、それらを 1 つの文字列に結合して、それらからスクリプト ソースを作成します。クラスがアルファベット順に継承されない場合、UnboundNameException が発生するため、これはもちろん欠陥のある方法です。
class bar(foo):
pass
class foo():
pass
通常の方法ですべてのファイルをコンパイルするにはどうすればよいですか?