1. ホーム
  2. c++

[解決済み] Ubuntu - boost.pythonのリンク - Fatal error: pyconfig cannot be found

2022-02-17 15:08:48

質問

いくつかの問題があり、現在、以下を読みました。

hello world python extension in c++ using boost?

私はデスクトップにboostをインストールし、リンクの点では投稿に示唆されたように行ってみました。私は以下のコードを持っています。

#include <boost/python.hpp>
#include <Python.h>
using namespace boost::python;

今度は、以下のようにリンクしてみました。

g++ testing.cpp -I /usr/include/python2.7/pyconfig.h -L /usr/include/python2.7/Python.h
-lpython2.7

そして、以下も試してみました。

g++ testing.cpp -I /home/username/python/include/ -L /usr/include/python2.7/Python.h -lpython2.7

次のようなエラーが出続けています。

/usr/include/boost/python/detail/wrap_python.hpp:50:23: fatal error: pyconfig.h: No such   
file or directory
# include <pyconfig.h>

どこで間違っているのかわかりません。boost.pythonはインストールされているのですが、リンクに問題があるのでしょうか?

解決方法は?

私はちょうど同じエラーを持っていた、問題はg++がpyconfig.hを見つけられないことです(衝撃的な、私は知っている)。私の場合、このファイルは、次の場所にあります。 /usr/include/python2.7/pyconfig.h ということで -I /usr/include/python2.7/ で修正することができます。

export CPLUS_INCLUDE_PATH="$CPLUS_INCLUDE_PATH:/usr/include/python2.7/"

また、これを .bashrc に追加すると、次にシェルを起動したときに追加されます (変更を反映させるにはターミナルを再度開く必要があります)。

Pythonのインクルードパスを見つけるには、以下のようにします。 find /usr/include -name pyconfig.h 私の場合、これが返されます。

/usr/include/python2.7/pyconfig.h
/usr/include/i386-linux-gnu/python2.7/pyconfig.h