2017-06-07 31 views
1

私は.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\指さ両方PathPYTHONHOME環境変数を持っていました。

私が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つ「ファイルまたはアセンブリ をロードできませんでした' 。 は、不正な形式のプログラムを読み込もうとしました。

ありがとうございます。

+1

おそらく、32ビット.NETプロセスから呼び出しているかもしれませんが、Python 3.6は64ビットです。 pythonnetソリューションからnPython.exeを実行してみてください。 – denfromufa

+1

https://github.com/pythonnet/pythonnet/wiki/Troubleshooting-on-Windows-and-Linux – denfromufa

+0

@denfromufaありがとう!私は自分のプロジェクトで 'Platform target'を' Any CPU'から 'x64'に変更するのを忘れました。 – DfM

答えて

1

denfromufaと言っていましたが、私は32ビットの.NETプロセスから呼び出していました。

関連する問題