课程目标:

快速入门python,学习编译查看Python的源码 ;会跨平台win,linux,mac使用ctypes传递变量、结构体和回调函数给c++ ; 会跨平台开发python的c++扩展库; 会使用c++调用pythonAPI并定制化python虚拟机 ;实战联合qt+ffmpeg+python开发

课程简介:

一 环境准备 和Python语法入门

二 Python CTypes访问C/C++动态链接库

三 Python源码跨平台的编译

四 Python的C/C++扩展库_模块、函数、类扩展

五 Python的多线程GIL及在web中调用ffmpeg扩展示例

六 Python虚拟机定制-使用c++调用python

七 基于python_qt_ffmpeg的视频播放项目示例

课程大纲-Python & C/C++联合编程实战视频课程

第1章 课程介绍和环境准备      52分钟5节

  • 1-1  PythonSDK在windows中的安装和配置  [16:56]

  • 1-2  pycharmIDE在Windows中的安装配置  [09:30]

  • 1-3  PythonSDK在Mac中安装和配置  [09:43]

  • 1-4  pycharm在Mac中安装和配置  [05:33]

  • 1-5  PythonSdk和pycharm在ubuntu中安  [10:39]

第2章 Python语法快速入门    5小时47分钟35节

  • 2-1  print输出格式设定和代码演示  [16:54]

  • 2-2  print输出到文件并输出csv格式的excel表格  [07:59]

  • 2-3  python注释分号和换行基础语法  [09:12]

  • 2-4  python的基础类型分析和整形浮点型的内部存储分析  [15:11]

  • 2-5  python布尔bool类型内部存储分析  [05:51]

  • 2-6  python复数的C语言内部结构分析  [05:31]

  • 2-7  python的算数运算符  [10:17]

  • 2-8  python字符集问题分析  [09:45]

  • 2-9  python字符串的访问和截取方法  [10:06]

  • 2-10  python字符串多行处理的三种方法  [07:10]

  • 2-11  python字符串拼接和格式化  [07:03]

  • 2-12  python _list数据结构内部存储分析  [08:42]

  • 2-13  python_list数据访问插入删除代码示例  [10:02]

  • 2-14  python_tuple元组  [07:07]

  • 2-15  python_dictionary存储hash表分析  [08:09]

  • 2-16  python_dictionary代码演示  [10:16]

  • 2-17  python的if条件判断语法  [20:38]

  • 2-18  python的while循环语句  [06:10]

  • 2-19  Python的for循环语句  [07:58]

  • 2-20  python函数的参数默认可变和关键字参数  [11:31]

  • 2-21  python的函数返回值的多种形式  [10:19]

  • 2-22  python的闭包函数closure  [07:14]

  • 2-23  Python的lambda表达式  [05:15]

  • 2-24  Python函数中变量的作用域scope  [09:55]

  • 2-25  python面向对象编程构造函数和析构函数  [11:22]

  • 2-26  python类的普通成员变量和私有成员变量  [09:29]

  • 2-27  python类的继承和函数重载  [07:19]

  • 2-28  python的模块和包的寻址引用分析  [09:05]

  • 2-29  python模块导入几种方式  [06:11]

  • 2-30  python导入import模块module的路径设  [05:00]

  • 2-31  python导入包和子包  [13:18]

  • 2-32  python多进程编程分析  [13:36]

  • 2-33  python多进程编程代码演示  [06:31]

  • 2-34  Python多线程编程互斥锁和通信队列  [24:35]

  • 2-35  python的异常处理抛出和自定义  [12:32]

第3章 Python CTypes访问C/C++动态链接库     4小时36分钟27节

  • 3-1  ctypes库介绍和windows下编译动态链接库的  [09:46]

  • 3-2  Python用ctypes调用的windows上C+  [11:30]

  • 3-3  编译linux动态库python的ctypes调用示  [16:50]

  • 3-4  测试的ctypes动态库代码移植到mac中  [05:06]

  • 3-5  python的ctypes与c语言类型转换分析  [07:29]

  • 3-6  ctypes整数和浮点数类型参数传递代码示例和异常处  [10:18]

  • 3-7  ctypes给c函数传递char字符串和wchar_   [10:57]

  • 3-8  通过create_string_buffer给c语言  [06:17]

  • 3-9  使用ctypes跨平台mac_linux_windo  [11:17]

  • 3-10  使用ctypes调用win32的MessageBox  [10:28]

  • 3-11  通过ctypes获取c函数返回的整形和字符串  [08:56]

  • 3-12  Ctypes给C++传递指针和修改c++返回指针的值  [14:51]

  • 3-13  ctypes为C函数传递数组  [11:18]

  • 3-14  ctypes给c函数传递结构体对象指针和数组  [13:24]

  • 3-15  ctypes获取C函数返回结构体对象和指针  [06:32]

  • 3-16  ctypes传递回调函数给c库函数qsort进行快速  [11:41]

  • 3-17  通过ctypes在c函数中调用python的函数  [09:35]

  • 3-18  案例-python与c++联合编程三维引擎示例说明  [07:17]

  • 3-19  案例-完成ctypes调用的dll项目创建并单例类  [11:29]

  • 3-20  案例-完成了python通过ctypes调用dll函  [07:04]

  • 3-21  案例-导入鬼火三维引擎完成窗口初始化接口  [10:27]

  • 3-22  案例-完成三维场景添加  [09:42]

  • 3-23  案例-完成主循环和场景摄像机刷新显示  [05:50]

  • 3-24  案例-完成md2动画人物模型添加和属性设置  [06:50]

  • 3-25  案例-完成场景和人物节点三维坐标设定  [10:25]

  • 3-26  案例-完成人物武器添加  [07:11]

  • 3-27  案例-完成鼠标点击人物挥刀的事件处理  [23:44]

第4章 Python源码跨平台的编译    1小时15分钟6节

  • 4-1  Python源码编译windows环境准备和源码目录  [10:50]

  • 4-2  完成python源码在windows中的编译  [18:28]

  • 4-3  python编译后在windows上的环境变量和注册  [09:20]

  • 4-4  python源码在linux上编译配置运行  [07:39]

  • 4-5  python源码在mac上编译安装和依赖库的编译安装  [15:08]

  • 4-6  c++python扩展库的开发步骤和发布方法讲解  [14:01]

第5章 Python的C/C++扩展库_模块和函数     3小时34分钟22节

  • 5-1  完成python的c扩展库模块入口创建和扩展函数代码  [13:47]

  • 5-2  使用distutils模块完成扩展库的编译并在win  [13:23]

  • 5-3  Python源码PyObject结构分析和引用计数代  [07:08]

  • 5-4  PyLongObject与PyObject关系讲解及  [11:53]

  • 5-5  使用VS2015创建好python扩展库项目配置和编  [11:49]

  • 5-6  基于vs2015配置python扩展库自动部署和调试  [06:04]

  • 5-7  基于PyArg_ParseTuple给扩展库传递整形  [05:27]

  • 5-8  传递浮点数并通过PyFloat_Check检测参数类  [09:04]

  • 5-9  PyUnicodeObject结构分析和扩展库返回字  [11:33]

  • 5-10  扩展库接收字符串参数传递编码测试  [05:51]

  • 5-11  扩展库传递关键字参数METH_KEYWORDS  [12:46]

  • 5-12  扩展库传递一维和二维元组tuple参数并分析tupl  [12:34]

  • 5-13  扩展库返回一维和二维元组tuple  [07:31]

  • 5-14  扩展库读取list参数遍历显示并检测格式错误设置异常  [08:37]

  • 5-15  扩展库添加_插入_修改和删除list参数中元素  [10:35]

  • 5-16  扩展库返回新创的list和参数list并对引用计数加  [07:51]

  • 5-17  扩展库读取Dictionary参数并处理引用计数解决  [13:47]

  • 5-18  扩展库根据关键字读取字典并清理空间  [07:45]

  • 5-19  扩展库函数参数遍历字典PyDict_Keys并清理相  [11:40]

  • 5-20  扩展库PyDict_Next迭代访问字典内容并封装P  [05:40]

  • 5-21  扩展库处理dict参数插入修改和删除数据  [13:32]

  • 5-22  扩展库函数返回dictionary字段  [06:14]

第6章 Python的C/C++扩展库_类扩展     1小时56分钟8节

  • 6-1  扩展库新增类步骤分析  [09:39]

  • 6-2  完成第一个扩展库类的示例完成类空间分配tp_new函  [28:37]

  • 6-3  类扩展构造函数和析构函数及关键字参数传递  [14:57]

  • 6-4  扩展库类添加成员变量tp_members并在构造函数  [10:09]

  • 6-5  扩展库字符串和PyObject成员变量添加和析构函数  [11:18]

  • 6-6  扩展库类添加属性并定义get和set的属性函数  [15:40]

  • 6-7  扩展库的类添加成员函数  [07:19]

  • 6-8  扩展库类的循环引用内存泄漏问题设定垃圾回收函数解决  [18:48]

第7章 Python的C/C++类扩展库_多线程GIL及ffmpeg      1小时59分钟8节

  • 7-1  python全局解释器锁GIL调度策略分析和获取释放  [11:45]

  • 7-2  在c++扩展函数中用创建线程PyGILState_E  [15:47]

  • 7-3  c++的python扩展函数中保存线程环境释放线程锁  [09:18]

  • 7-4  基于ffmpeg扩展库示例环境和项目创建  [17:23]

  • 7-5  完成了扩展库PyFFmpeg对象创建_初始化和析构  [16:34]

  • 7-6  创建XFFmpeg类导入ffmpeg相关库问题并设置  [22:38]

  • 7-7  完成视频信息读取和开放属性接口  [08:12]

  • 7-8  在python的web程序中访问ffmpeg扩展库示  [17:24]

第8章 Python虚拟机定制c++调用python   1小时34分钟8节

  • 8-1  完成cpp调用python的环境准备和虚拟机初始化  [12:04]

  • 8-2  c++运行python脚本文件和脚本字符串并增加异常  [13:28]

  • 8-3  c++读取python脚本中的dictionary类  [15:38]

  • 8-4  c++调用python的类实例化对象访问成员函数和成  [13:53]

  • 8-5  c++调用python函数并传递list参数并获取返  [17:56]

  • 8-6  c++给python传递变量的两种方法PyObjec  [06:46]

  • 8-7  c++给python传递函数和类PyModule_A  [07:36]

  • 8-8  c++读取python模块并给python主模块传递  [07:05]

第9章 基于python_qt_ffmpeg的视频播放项目示例   4小时28分钟20节

  • 9-1  py_ffmpeg_python综合项目需求和用到的  [07:55]

  • 9-2  依赖的QT环境安装和代码示例  [21:24]

  • 9-3  完成项目创建并初始化python虚拟机  [10:35]

  • 9-4  c++读取python的配置项改变窗口大小和标题  [11:30]

  • 9-5  qt按钮事件的Open槽函数中调用python函数  [16:51]

  • 9-6  导入pyffmpeg扩展库完成视频的打开  [05:58]

  • 9-7  完成pyffmpeg扩展库的Read读取视帧函数  [14:59]

  • 9-8  在c++线程中调用python的main函数解决GI  [11:57]

  • 9-9  完成扩展库中打开ffmpeg解码器  [17:07]

  • 9-10  完成扩展库pyffmpeg的decode解码函数并完  [16:37]

  • 9-11  完成扩展库pyffmpeg的尺寸和像素格式转换上下文  [17:08]

  • 9-12  完成扩展库pyffmpeg尺寸转换空间申请释放和处理  [11:20]

  • 9-13  重载qt显示视频窗口完成图像设置和视频绘制函数  [16:58]

  • 9-14  完成python图像设置接口并完成视频播放  [15:14]

  • 9-15  完成视频播放器并根据fps控制播放速度  [13:30]

  • 9-16  PyLplayer移植到linux步骤分析讲解  [14:26]

  • 9-17  PyFFmpeg移植到linux并测试  [09:28]

  • 9-18  演示linux安装qt和编译ffmpeg源码  [05:55]

  • 9-19  完成了PyPlayer在linux的qtcreato  [13:06]

  • 9-20 Python扩展库和PyPlayer移植到MacOS  [16:16]