PythonでVisualC++(boostでラップ)のc++コードを使用するのに非常に問題があります。
了解しました。使用しているツールは、Visual Studio 2010、BoostPro 1_47、Windows 7、およびPython 2.7(32ビット)です。
VisualStudio2010で適切にコンパイルされる次のコードがあります。
#define BOOST_PYTHON_STATIC_LIB
#include <boost/python.hpp>
using namespace boost::python;
struct World
{
void set(std::string msg) { this->msg = msg; }
std::string greet() { return msg; }
std::string msg;
};
BOOST_PYTHON_MODULE(hello)
{
class_<World>("World")
.def("greet", &World::greet)
.def("set", &World::set);
}
形式は次のとおりです。Win32コンソールアプリケーション>>>空のプロジェクト/DLL。
「プロジェクトのプロパティ」:
VC++ DIRECTORIES:
I added:
>>> INCLUDE DIRECTORIES: C:\Program Files\boost\boost_1_47;C:\Python27\include .
>>> LIBRARY DIRECTORIES: C:\Program Files\boost\boost_1_47\lib;C:\Python27\libs
これらすべてがc++ファイルをビルドしますが、Pythonからアクセスできません。
これは、私がモジュールを使おうとしたときにPythonが言うことです。
">>> import hello
Traceback (most recent call last):
File "<pyshell#0>", line 1, in <module>
import hello
ImportError: No module named hello
だから私の質問は...Pythonにそれを見つけさせるにはどうすればいいですか?
c ++コードがコンパイルされると、DLLファイルが作成されます。ファイルの場所を変更する必要がありますか?もしそうなら、どこに置くべきですか?
あなたの助けをいただければ幸いです