pythonboost
1. 如何使用boost:python为C++程序开发一个基于python语言的扩展框架
参考boostpython的例子,python里面gil会让很难受,python调用c++模块好弄点,c++调用python得解决多线程gil的问题。
2. boost.python 库,在 VC 中如何选择
1、查看boost编译是否已经生成boost_python-vc120-mt-gd-1_58.lib。注意python与boost是32位或64位版本,版本要对应。
我之前因为boost编译是的64位,而python是32位的,造成链接失败。可以使用mpbin /headers xxx.dll检查是32位还是64位。
仅供参考。
3. 如何通过Boost.Python在Python中使用C++类和函数
(1)从Boost官方网站下载Boost库源文件,将其解压至某一目录中。
(2)将Boost解压至的目录添加到VC++ 6.0的【Include files】中,
(3)进入Boost目录下的“libs\python\build\VisualStudio”子目录中,在VC++ 6.0中打开其中的“boost_python.dsw”文件。
(4)单击【Build】|【Batch Build】命令,分别编译Boost.Python的Debug和Release版。
(5)编译完成后将在Boost目录下的“libs\python\build\bin-stage”子目录中生成动态链接库和库文件。由于使
用Boost.Python编写的Python扩展在运行时根据版本不同需要“boost_python.dll”和
“boost_python_debug.dll”文件。为了方便,可以将其放到Windows安装目录下的“system32”目录下。否则,需要将其
和Python扩展放在同一目录中。
(6)将Boost目录下的“libs\python\build\bin-stage”子目录添加到VC++ 6.0的【Library files】中,
完成上述设置后就可以使用Boost.Python编写Python扩展了。
使用Boost.Python扩展和嵌入Python
通过Boost.Python可以在Python内使用C++类和函数。和SWIG一样Boost.Python简化了编写Python扩展的代码,而不用使用Python/C API。但与SWIG不同,Boost.Python是一个类库,无需再使用接口文件。
初始化和方法列表
在Boost.Python中可以通过使用BOOST_PYTHON_MODULE来命名模块名。在BOOST_PYTHON_MODULE中则可以使用def来实现使用Python/C API定义的方法列表。以下是一个简单的例子。
void show()
声明show函数
{
cout << "Boost.Python";
}
BOOST_PYTHON_MODULE(example)
使用BOOST_PYTHON_MODULE命名模块名为“example”
{
def("show",show);
相当于定义方法列表
以上就是对如何编译Boost.Python以及如何使用Boost.Python扩展和嵌入Python的相关的内容的介绍,望你会有所收获。
4. Python的Dlib安装时一直出现找不到boost怎么解决
刚刚在 macOS 遇到了类似问题并有了一个解决方案:解决 macOS 下 Python 安装 Dlib 的问题:Cmake 找不到 boost-python
Linux 以及 其他 类 Unix 系统可能都可以参考上面在 macOS High Sierra 下的思路来通过设定 ~/.bashprofile 里面的 CMAKE_PREFIX_PATH 指向 boost 安装路径来解决这个问题。
现在我正在Windows虚拟机里面测试,发现似乎也是 cmake 没有设定 boost 位置导致的。
我尝试一下用类似方法来解决,然后把细节过程截图发上来。
到Python Extension Packages for Windows
下载对应系统版本的 boost python 的 whl:
上面这些内容部分参考了 BOOST 官方文档的内容:Getting Started on Windows
上述步骤完成之后,使用 pip install dlib 来安装吧.
我自己在 Windows 7 32bit 系统下测到一半提示编译错误,不过能确定的是上面这些步骤都没问题了,算了,我懒得折腾了,以上内容供参考了。
希望大家都安装顺利,另外开发机还是 类 Unix 系统好配置啊。
5. 怎样利用boost.python在C++中直接使用Python类对象 40wangjiepro
标准库Python拥有一个强大的标准库。Python语言的核心只包含数字、字符串、列表、字典、文件等常见类型和函数,而由Python标准库提供了系统管理、网络通信、文本处理、数据库接口、图形系统、XML处理等额外的功能。Python标准库的主要功能有:1.文本处理,包含文本格式化、正则表达式匹配、文本差异计算与合并、Unicode支持,二进制数据处理等功能2.文件处理,包含文件操作、创建临时文件、文件压缩与归档、操作配置文件等功能3.操作系统功能,包含线程与进程支持、IO复用、日期与时间处理、调用系统函数、日志(logging)等功能4.网络通信,包含网络套接字,SSL加密通信、异步网络通信等功能5.网络协议,支持HTTP,FTP,SMTP,POP,IMAP,NNTP,XMLRPC等多种网络协议,并提供了编写网络服务器的框架6.W3C格式支持,包含HTML,SGML,XML的处理。7.其它功能,包括国际化支持、数学运算、HASH、Tkinter等Python社区提供了大量的第三方模块,使用方式与标准库类似。它们的功能覆盖科学计算、Web开发、数据库接口、图形系统多个领域。第三方模块可以使用Python或者C语言编写。SWIG,SIP常用于将C语言编写的程序库转化为Python模块。BoostC++Libraries包含了一组函式库,Boost.Python,使得以Python或C++编写的程式能互相调用。Python常被用做其他语言与工具之间的“胶水”语言。着名第三方库1.Web框架Django:开源Web开发框架,它鼓励快速开发,并遵循MVC设计,开发周期短。ActiveGrid:企业级的Web2.0解决方案。Karrigell:简单的Web框架,自身包含了Web服务,py脚本引擎和纯python的数据库PyDBLite。Tornado:一个轻量级的Web框架,内置非阻塞式服务器,而且速度相当快webpy:一个小巧灵活的Web框架,虽然简单但是功能强大。CherryPy:基于Python的Web应用程序开发框架。Pylons:基于Python的一个极其高效和可靠的Web开发框架。Zope:开源的Web应用服务器。TurboGears:基于Python的MVC风格的Web应用程序框架。Twisted:流行的网络编程库,大型Web框架。Quixote:Web开发框架。2.科学计算Matplotlib:用Python实现的类matlab的第三方库,用以绘制一些高质量的数学二维图形。SciPy:基于Python的matlab实现,旨在实现matlab的所有功能。NumPy:基于Python的科学计算第三方库,提供了矩阵,线性代数,傅立叶变换等等的解决方案。3.GUIPyGtk:基于Python的GUI程序开发GTK+库。PyQt:用于Python的QT开发库。WxPython:Python下的GUI编程框架,与MFC的架构相似。4.其它BeautifulSoup:基于Python的HTML/XML解析器,简单易用。PIL:基于Python的图像处理库,功能强大,对图形文件的格式支持广泛。PyGame:基于Python的多媒体开发和游戏软件开发模块。Py2exe:将python脚本转换为windows上可以独立运行的可执行程序。参考自维基网络
6. boost python 依赖哪些py文件
BoostPython库让C++和Python几乎无缝结合,是Boost库的一个功能。
用BoostPython库,能快速、容易地将C++输出到Python,使得Python接口和C++接口非常像。它被设计成尽可能贴近你的C++设计。大多数情况下,你不需要修改C++类就能在Boost.Python中使用它。系统会简单地映射你的C++类和函数到Python。Boost.Python的这种绑定,是纯C++实现的,除了编辑器和编译器你什么别的都不需要。
7. 如何从Boost.Python的静态编译库
编译前提是安装Python2.2以上: (1)将$(BOOST)\tools\jam\src\bin.ntx86下的bjam.exe拷贝至$(BOOST)目录下。 (2)编译:bjam –-toolset=msvc –-with-python –-build-type=complete stage。 (3)编译结果是生成dll和lib文件。