私は.NETアプリケーションにPythonを埋め込もうとしています。Python for .NET:埋め込み時のSystem.BadImageFormatException
私はWindows 10でPython 3.6.1 64ビットを使用していますが、pythonからpythonnet 2.3.0をpipを使用してインストールしました。
私はC:\Program Files\Python36\Lib\site-packages
からPython.Runtime.dll
を参照してC:\Program Files\Python36\
指さ両方Path
とPYTHONHOME
環境変数を持っていました。
私がPythonで.NETを使用するときは、すべて問題ありません。
import clr
from System.Drawing import Point
p = Point(5, 5)
print(p)
プリント{X=5,Y=5}
が期待通りです。
しかし、私がPythonを.NETから呼び出すと、System.BadImageFormatException
が得られます。例えば、Python.Runtime.PythonEngine.Initialize();
を呼び出す:
System.BadImageFormatException:Python.Runtime、バージョン= 2.3.0.0、文化=中立、 なPublicKeyToken = nullを 'またはその依存関係の1つ「ファイルまたはアセンブリ をロードできませんでした' 。 は、不正な形式のプログラムを読み込もうとしました。
ありがとうございます。
おそらく、32ビット.NETプロセスから呼び出しているかもしれませんが、Python 3.6は64ビットです。 pythonnetソリューションからnPython.exeを実行してみてください。 – denfromufa
https://github.com/pythonnet/pythonnet/wiki/Troubleshooting-on-Windows-and-Linux – denfromufa
@denfromufaありがとう!私は自分のプロジェクトで 'Platform target'を' Any CPU'から 'x64'に変更するのを忘れました。 – DfM