C&C++   发布时间:2022-04-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Boost Python Hello World示例不适用于Python大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我在使用 Python中的Visual C代码(由boost包装)时遇到了很多麻烦.

好吧,我正在使用的工具是: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文件.我是否必须更改文件的位置?如果是的话,我应该把它放在哪里?

非常感谢您的帮助

@L_874_12@

AFAIK你必须将DLL的扩展名更改为.pyd,否则Python将无法加载它.我想你可以设置一个构建选项来@L_197_14@设置VS中的扩展,但我不确定.

另外,确保创建的扩展名在PYTHONPATH的某个位置,路径,python将查找要加载的模块.

大佬总结

以上是大佬教程为你收集整理的Boost Python Hello World示例不适用于Python全部内容,希望文章能够帮你解决Boost Python Hello World示例不适用于Python所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。