我正在尝试使用pybind11并为python2.7和python3.6创建我的library.so
。我正在使用cmake包使用pybind11,但也可以实现自己的。
据我所知,我需要指定安装pybind时使用的python版本。我需要指定,以便add_pybind11_module
知道要使用哪个python进行链接等。此外,我可以使用g++自己创建so,并同时创建so。
另外,我需要在不同的文件夹中创建so,因为它们的名称相同。
我想已经有解决此问题的解决方案。 pybind11中是否有内置支持,或者有人为它做了cmake插件?
谢谢
最佳答案
您需要两次构建扩展,并生成两个.so
文件。您可以使用简单的bash脚本来做到这一点,就像这样:
# build module for 3.6
mkdir -p build-python-3.6
(cd build-python-3.6 ; cmake .. -DPYBIND11_PYTHON_VERSION=3.6 ; make )
# build module for 2.7
mkdir -p build-python-2.7
(cd build-python-2.7 ; cmake .. -DPYBIND11_PYTHON_VERSION=2.7 ; make )
pybind11默认在库名称中包含python版本,因此您应该能够将它们放在同一文件夹中(例如
my_library.cpython-37m-x86_64-linux-gnu.so
)。虽然可能可行,但我建议您编写一个setup.py
并让setuptools
将您的库放置在适当的位置。
关于python - pybind11 python 2.7和3.6,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59128309/
分类:
python
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
2017-08-23 ffmpeg编码h264只包含I帧P帧的方法
2017-08-23 【FFmpeg】FFmpeg常用基本命令
2017-08-23 FFmpeg基础知识之————H264编码profile & level控制
2017-08-23 ffmpeg混音(将多个声音合成一个)命令
2017-08-23 ffpanel --ffmpeg的GUI,让ffmpeg离开黑黑的命令行
2017-08-23 使用Nginx反向代理和proxy_cache缓存搭建CDN服务器加快Web访问速度
2017-08-23 几个学习流媒体的案例代码网址