2017-12-21 23 views
0

PythonインタプリタをC++アプリケーションに埋め込みしようとしています。それはまっすぐだと思っていましたが、私はリンクして考えるのが苦労しています。唯一の珍しいことは、特定のAnacondaパッケージを使用しようとしていることです。単純なC++コードは次のとおりです。PythonをanacondaからC/C++に埋め込むPyThreadState_Get:現在のスレッドがありません

gcc pythonTest.cc -I/path/to/anaconda/include/python3.6m -L/path/to/anaconda/lib/python3.6/config-3.6m-x86_64-linux-gnu -lm -lpthread -ldl -lutil -lpython3.6m -o pytest 

それはコンパイルんが、私は簡単なプログラムを実行したときに私が手::

Fatal Python error: PyThreadState_Get: no current thread 

before initializeAborted 

私がチェックしたが

# include <Python.h> 

int main() 
{ 
    printf("before initialize"); 
    Py_Initialize(); 
    printf("after initialize"); 
    PyRun_SimpleString("print('Hello from Python')"); 
    Py_Finalize(); 
    return 0; 
} 

は私が使用してコンパイルします私がincludeとlibsで指定したものと同じpython実行可能ファイルへのパスが含まれています。しかし、いくつかの検索では、Pythonのバージョンが呼び出されているものとリンクされているものとは多少異なることが示唆されています。私はこれをどのように把握するかについて、ある程度の犠牲を払っている。

+0

私は正確に同じ問題を持っています。あなたはこれを解決することができましたか? – kdheepak

答えて

0

は、使用してコンパイルしよう:

gcc pythonTest.cc -I/$HOME/anaconda3/include/python3.6m -lpython3.6m 
関連する問題