これは既知の問題ですが、専門家に解決する最善の方法を尋ねたいと思います。
Python をスクリプト言語として実行するプロジェクト (Euler Math Toolbox) があります。このために、実行時にライブラリ モジュール「python.dll」がロードされ、「python27.lib」にリンクされます。次に、Py_Initialize が呼び出されます。これはすべてうまくいきます。
ただし、オイラーは、ユーザーが新しいセッションとノートブックを使用して再起動できます。次に、Python にすべての変数とインポートをクリアしてもらいます。このために、Py_Finalize を呼び出して "python.dll" をアンロードします。Python が必要な場合、読み込みと初期化により Python が再び起動します。
これは機能します。ただし、MatPlotlib が前のセッションでインポートされている場合、Python は最初の呼び出しでクラッシュします。Py_Finalize は Python を完全にクリアしていないようで、「python.dll」をアンロードしていないようです。"python27.dll" (Python DLL) をアンロードしようとしましたが、これは役に立ちません。ほとんどの場合、別の DLL がアクティブなままですが、Py_Finalize 中に破損します。
これを解決するには、すべての変数とインポートをクリアするだけで十分です。Py_Finalize を呼び出さなくても大丈夫です。しかし、どのように?
PS: なぜ euler.exe を Python に直接リンクしないのか不思議に思うかもしれません。その理由は、Python がインストールされていない場合、たとえ必要がなくても、オイラー形式が開始されないからです。
回答ありがとうございます。必要に応じて、gmail で renegrothmann への回答を複製します。それは私を助けるでしょう。