7
我用我的C++代碼從Python中的Visual C++(由升壓包裹),具有帶來很大的麻煩不工作。升壓Python的Hello World示例在Python
好了,所以我使用的工具有:Visual Studio 2010中,BoostPro 1_47,Windows 7和Python 2.7版(32位)。
我有下面的代碼編譯很好地在Visual Studio 2010:
#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文件。我必須更改文件的位置嗎?如果是這樣,我應該把它放在哪裏?
您的幫助將不勝感激
謝謝Constantinius! :D我終於得到這個工作,幾小時,幾小時後,試圖讓boost.python做它的事情。 – user1449530
你能提供一個你已經做了成功的祕訣嗎? – Noam
我還必須將包含Boost Python * .lib和* .dll文件的目錄添加到PATH –