2016-04-13 21 views
1

PythonをC#アプリケーションに埋め込もうとしていますが、動作させることができません。私はこのクラスのインスタンスを作成しようとすると 私のコードはPythonEngine.Initialize()はエラーメッセージなしで失敗します

using System; 
using Python.Runtime; 

namespace NLP.Python 
{ 
    public class PythonRumtime 
    { 
     public PythonRuntime() 
    { 
     //Location of python installation 
     PythonEngine.PythonHome = "C:\\Python27"; 
     PythonEngine.Initialize(); 
    } 
    } 
} 

で、コードがPythonEngine.Initialize() を呼び出すときに、私はすでに、DLLファイルのPython.Runtimeへの参照を追加したエラーなしで失敗しますpythonnetでインストールされています。

他に何をすべきかわかりません。

私はPython 2.7.11の32ビットインストールでWindows 64ビットマシンにpip経由でpythonnet-2.1.0をインストールしました。

EDIT Python.Runtime.dllのPy_Initialize()の呼び出し時にエラーが発生しているようです。 https://docs.python.org/2/c-api/init.htmlによると "戻り値はありません;初期化に失敗した場合は致命的なエラーです。"

+1

これが問題であるかどうかわかりませんが、PythonHomeの文字列を@ "C:\ Python27"または "C:\ Python27"に変更する必要があります。あなたは '\\'からエスケープする必要があります。 – pstrjds

+1

@pstrjds申し訳ありませんが、私のコードを貼り付けるときに書式設定エラーが発生しました。私は自分の質問を編集しました – SonOfX

+2

エラーがなければ、どのように失敗するのですか? –

答えて

0

これは、Python 2.7.11 32ビットのための公式のWindowsインストーラをpython.orgのバグです:

https://bugs.python.org/issue25824

は多分WinPythonやPython 2.7.10、アナコンダを試してみてください。

+1

これはPythonEngine.PythonHome = "C:\\ Python27"という行を削除したことを意味しています。ありがとう! – SonOfX

+0

pythonhomeまたはpythonpathの設定に未解決の問題があります:https://github.com/pythonnet/pythonnet/pull/186 – denfromufa

関連する問題