C++调用python3

本文详细记录了在C++项目中调用Python3.5时遇到的问题及解决方法,包括配置环境、找不到python35_d.lib、Py_Initialize加载文件系统编码失败、Import模块失败等常见错误。作者建议对于C++调用Python,新手可能更适合使用Python2,并分享了相关资源和代码示例。
摘要由CSDN通过智能技术生成

注:为了方便,我把我在这个过程中的一些问题列在列下面,有很多bug的解决还是能在下面找到答案,希望能帮到你们。
鉴于博主我比较菜,所以这篇博客其实是建议如果要用C++调用还是Python2吧。当然可能一段时间以后有比较好的解决办法或者python3变得更科学,或者你们知道很好的思路,欢迎评论区交流。

1. 配置

  1. 项目–>属性–>vc++目录–>包含目录 添加python安装目录中include目录
  2. 项目–>属性–>vc++目录–>库目录
  3. 添加python安装目录中libs目录 链接器–>输入–>附加依赖项 添加python35.lib

2. 在C++中调用python(版本3.5)

手册里是建议这样产生一个类: https://docs.python.org/3/extending/newtypes.html
另外一种方式是调用PyType_Type这个对象来产生一个实例,也是个类来的…

来源:问题链接:http://bbs.csdn.net/topics/390748303

  • 对的,有手册当然是看手册。在手册里好像可以发现新大陆的样子。但是后来我发现,还是找不到关于Import class的东西
    Extending Python with C or C++

  • 下面这个是之前被忽略的一篇文章,因为标题总让我以为是在Python里调用C++。文里的一句话到了心坎上“有什么问题记得多查英文资料,国内的这方面知识少”。
    Python嵌入C++详解(3)–Import Class

报错:

找不到python35_d.lib这个文件。

思路:在pyconfig.h中把pragma comment(lib,"python35_d.lib")改成pragma comment(lib,"python35.lib")
发现还是报错。
解决:还是乖乖用源码编译生成吧。
Python.org 下载源码包
地址:https://www.python.org/downloads/source/
选择 Gzipped source tarball
打开pcbuild目录下的sln文件,必须用VS打开该解决方案,过低版本的vs打不开该解决方案。(sln用记事本打开里面记着VS版本要求ÿ

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 8
    评论
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值