python高阶学习之一:c++调用python

python已经成为当今人工智能和数据分析的主流语言,掌握python就好像拿到了进入AI分析殿堂的门票一样,无论如何任何事情都要从一点一滴做起,不要在浮沙上筑高台。找了基本书,看了几个专业网站的资料。无外乎基本语法、变量、流程、函数的老套路,虽然python和其他的语言,有些地方不一样,但是都脱离不了介绍一种编程语言的套路。作为编程多年的一名程序员,对于这种老的套路已经不再感冒,因为经常用c/c++编程,对c/c++的偏爱是java和.net程序员所不能理解的,还是对c/c++情由独中。但不要因为有了鱼,就不去尝试熊掌!因为熊掌也是好吃的!所以本人的python学习,就是从鱼和熊掌兼而得之的思路来学习的。因此本python的学习,从c++调用python开始。

第一步建立一个vc的应用程序,建立工程:callpython

第二步开始进行环境配置:

配置附加包含目录include

配置lib路径

指定输入附加依赖项

完成了指定的设置选项,对了这里要强调两点:

第一点:我本人使用的是64位的win10,所以最初建立的win32工程,要修改配置为64位,这个对于经常使用vc程序的人,不用啰嗦介绍,非常简单。

第二点:大家看到C:\Python35,这个路径一定很奇怪,说白了,前面没有介绍python环境的安装,这里补充一下。

我也曾下载最新的python3.8.3的包进行了安装,但是在包含进来python.h文件时,编译报错,估计是上传代码不全,或者我没有研究清楚的缘故。因为事情比较急,急于搭建出开发环境来,所以找了个稳定的版本先运行起来再说。

查了一下python3.5版本,比较稳定,所以下载安装了。安装到c:\Python35目录中。

环境配置好了,下面进入第三步,开始上代码。

第三步:写代码

这里是vc的代码:

#include "stdafx.h"
#include"C:\Python35\include\Python.h"
#include <iostream>
using namespace std;

int main()
{
 
    Py_SetPythonHome(L"C:\\Python35");

Py_Initialize();              //使用python之前,要调用Py_Initialize();这个函数进行初始化  
    PyObject * pModule = NULL;    //声明变量  
    PyObject * pFunc = NULL;      //声明变量  
 
    if(!Py_IsInitialized()){  
        printf("python初始化失败");  
        return -1;  
    }  
    PyRun_SimpleString("import sys");  
    PyRun_SimpleString("sys.path.append('./')");  
    PyRun_SimpleString("print(sys.path)");
    PyRun_SimpleString("print('Hello World!!')");

PyRun_SimpleString("import helloworld"); /*调用python文件*/
    PyRun_SimpleString("helloworld.printHello()");/*调用python文件中的函数*/

Py_Finalize();

getchar();
    return 0;
}

下面是 helloword.py文件

def printHello():
    print("Hello World in python!")

完成写代码。

第四步:编译运行。

完美收关!

python高阶学习之一:c++调用python相关推荐

  1. python高阶函数map_简单了解python高阶函数map/reduce

    高阶函数map/reduce Python内建了map()和reduce()函数. 我们先看map.map()函数接收两个参数,一个是函数,一个是Iterable,map将传入的函数依次作用到序列的每 ...

  2. python mapreduce函数_Map-reduce在Python高阶函数中的应用,python,用法,之,mapreduce

    map() 函数 接收两个参数,一个是函数,一个是 Iterable , map 将传入的函数依次作用到序列的每个元素,并把结果作为新的 Iterator 返回. >>> def f ...

  3. python高阶_Python高阶学习

    学习目录阿力阿哩哩:深度学习 | 学习目录​zhuanlan.zhihu.com 上一期我们讲到阿力阿哩哩:Python进阶学习​zhuanlan.zhihu.com 3.4 Python高阶学习 3 ...

  4. python高阶函数——sorted排序算法

    python高阶函数--sorted排序算法 python 内置的sorted()函数可以对一个list进行排序: >>> sorted([8,3,8,11,-2]) [-2, 3, ...

  5. 快速记忆python函数-【速学速记】Python 高阶函数

    原标题:[速学速记]Python 高阶函数 前言: python 迅速发展壮大起来,多亏了人工智能,AI ,机器学习,深度学习的发展.所以小的给各位看官们准备了收藏已久的视频教程分享给大家!希望能带给 ...

  6. 廖雪峰讲python高阶函数求导公式_一文读懂Python 高阶函数

    高阶函数 将函数作为参数传入,这样的函数称为高阶函数.函数式编程就是指这种高度抽象的编程范式. 变量可以指向函数,函数的参数能接收变量,那么一个函数就可以接收另一个函数作为参数,这种函数就称之为高阶函 ...

  7. python高阶3D绘图---pyvista模块,mayavi模块,pyopengl模块,MoviePy模块基础使用

    目录 一.python三维绘图 二.python动画生成 三.项目文件: 一.python三维绘图 ​ ~~~~~~~~         python借助于其编写简单,三方库丰富的特点,可以极为方便的 ...

  8. python四大高阶函数_详谈Python高阶函数与函数装饰器(推荐)

    一.上节回顾 Python2与Python3字符编码问题,不管你是初学者还是已经对Python的项目了如指掌了,都会犯一些编码上面的错误.我在这里简单归纳Python3和Python2各自的区别. 首 ...

  9. python高阶函数filter_python 高阶函数之filter

    前文说到python高阶函数之map,相信大家对python中的高阶函数有所了解,此次继续分享python中的另一个高阶函数filter. 先看一下filter() 函数签名 >>> ...

最新文章

  1. linux shell 统计行数的8种方法
  2. SpringMVC框架
  3. spi 外设驱动(spi_driver)
  4. arma模型_R语言与计量经济学(七)ARMA模型
  5. 基于COM的矢量图像控件VectorDraw
  6. Java动态规划求最长公共子序列(LCS)
  7. 设计模式之:策略模式
  8. java封装-猫狗宠物店案例
  9. 蓝牙相关Profiles
  10. ajax post forbidden,解决 Ajax 发送 post 请求出现 403 Forbidden 的三种方式
  11. Android WebView 不能弹出alert的对话框
  12. Superset 数据分析平台搭建及使用 1
  13. HTML标签结构1.2(媒体标签:图片标签、音频标签、视频标签)
  14. 【2023年电工杯数学建模竞赛】选题分析+A题B题完整思路+代码分享
  15. You Only Look One-level Feature
  16. 解析授人以渔的创新steam教学模式
  17. DL4J源码阅读(一):网络初始化
  18. Android app 性能测试以及专项测试
  19. Linux服务器架设-FTP服务器配置实例
  20. 5年时间,从外包测试到自研,最后到阿里,这5年的经历只有自己能知道....

热门文章

  1. Android——集地图、定位、导航于一体
  2. 交互式shell脚本实操
  3. 干货,分布式数据库在金融核心场景的落地实践|腾讯云数据库
  4. K8s介绍及离线安装(四)
  5. PHP获取用户的真实ip地址
  6. java隐藏类_java Class类中隐藏和覆盖的区别
  7. 基于pion生态的SFU实时音视频发布服务(一)
  8. 根文件系统的构建与分析(一)之流程分析 http://blog.csdn.net/jianchi88/article/details/7682901
  9. PS CS4 序列号永久使用
  10. Python爬虫教程——入门一之爬虫基础了解