1.去主页下载源代码项目

2.编译下载下来的项目

3.新建项目填入下面代码

// pythonIncludeTest.cpp : 定义控制台应用程序的入口点。
// #include "stdafx.h"
#include <Python.h> #pragma comment(lib, "python33.lib")
#pragma warning(disable:4996)
int _tmain(int argc, _TCHAR* argv[])
{ Py_SetProgramName(argv[]);
Py_SetPythonHome(L"G://SoftProject/cPython/pythonIncludeTest/Debug/");
Py_InitializeEx(); FILE * fp = NULL;
fp = fopen("G://SoftProject/cPython/pythonIncludeTest/Debug/main.py", "r"); if (fp == NULL)
{
return ;
}
PyRun_SimpleFile(fp, "main.py"); //PyRun_SimpleString("import sys\n"
// "print(sys.getfilesystemencoding())\n");
Py_Finalize();
scanf("exit");
return ;
}

4.添加包含目录和库目录(项目上右键,属性,配置属性,VC++目录)

包含目录指向源码的include目录,库目录指向PCbuild目录(要事先编译成功PCbuild目录就会有lib文件)

5.拷贝源码文件夹下的python33.dll(debug版是python33_d.dll)和Lib文件夹到当前目录,如果用到如ctypes等需要pyd的功能,还要编译该功能的对应项目,并拷贝相应的pyd文件到程序所在目录

python 会自动导入当先执行文件夹下的Lib文件夹下的文件,并且会根据模块如ctypes去当前文件夹找pyd文件如,ctypes_d.pyd

导入压缩版类库的代码版本:

// pythonIncludeTest.cpp : 定义控制台应用程序的入口点。
// #include "stdafx.h"
#include <Python.h> #pragma comment(lib, "python33.lib")
#pragma warning(disable:4996)
int _tmain(int argc, _TCHAR* argv[])
{ Py_NoSiteFlag=;
Py_SetProgramName(argv[]);
Py_SetPythonHome(L"G://SoftProject/cPython/pythonIncludeTest/Debug/");
Py_InitializeEx(); char pycmd[]; // temporary buffer for forged Python script lines
snprintf(
pycmd,
sizeof(pycmd),
"import sys; sys.path = ['%s','%s/Lib']",
"G://SoftProject/cPython/pythonIncludeTest/Debug",
"G://SoftProject/cPython/pythonIncludeTest/Debug"
);
PyRun_SimpleString(pycmd); FILE * fp = NULL;
fp = fopen("G://SoftProject/cPython/pythonIncludeTest/Debug/main.py", "r"); if (fp == NULL)
{
return ;
}
PyRun_SimpleFile(fp, "main.py"); //PyRun_SimpleString("import sys\n"
// "print(sys.getfilesystemencoding())\n");
Py_Finalize();
scanf("exit");
return ;
}

怎么压缩所有源代码:http://docs.python.org/3.3/distutils/sourcedist.html

python嵌入c++的更多相关文章

  1. 如何让python嵌入html实现类似php的快速开发,十分有价值

    1.在一个文件夹名为www.html3.com的web项目来实现,首先到nginx的配置文件nginx.conf做如下配置 python和html混合编写的文件,我以文件后缀为.phtml,通过服务器 ...

  2. boost.python入门教程 ----python 嵌入c++

    Python语言简介 Python是一种脚本语言.以开放的开发接口和独特的语法著称.尽管Python在国内引起注意只有几年的时间,但实际上Python出现于上世纪90年代(据www.python.or ...

  3. 在应用中嵌入Python:转

    在应用中嵌入Python 前面的章节讨论如何扩展Python,如何生成适合的C库等.不过还有另一种情况:通过将Python嵌入C/C++应用以扩展程序的功能.Python嵌入实现了一些使用Python ...

  4. 将Python代码嵌入C++程序进行编写

    将Python代码嵌入C++程序进行编写的实例,python嵌入 把python嵌入的C++里面需要做一些步骤 安装python程序,这样才能使用python的头文件和库 在我们写的源文件中增加“Py ...

  5. 工程脚本插件方案 - c集成Python基础篇(VC++嵌入Python)

    序: 为什么要集成脚本,怎么在工程中集成Python脚本. 在做比较大型的工程时,一般都会分核心层和业务层.核心层要求实现高效和稳定的基础功能,并提供调用接口供业务层调用的一种标准的框架划分.在实际中 ...

  6. 在 C 代码中嵌入 Python 语句或使用 Python 模块 (Visual Studio 2013 环境设置)

    1) 新建一个 内嵌 Python 语句的 C 代码, // This is a test for check insert the Python statements or module in C. ...

  7. Python高手之路【一】初识python

    Python简介 1:Python的创始人 Python (英国发音:/ˈpaɪθən/ 美国发音:/ˈpaɪθɑːn/), 是一种解释型.面向对象.动态数据类型的高级程序设计语言,由荷兰人Guido ...

  8. 【Python五篇慢慢弹】快速上手学python

    快速上手学python 作者:白宁超 2016年10月4日19:59:39 摘要:python语言俨然不算新技术,七八年前甚至更早已有很多人研习,只是没有现在流行罢了.之所以当下如此盛行,我想肯定是多 ...

  9. Python小白的发展之路之Python基础(一)

    Python基础部分1: 1.Python简介 2.Python 2 or 3,两者的主要区别 3.Python解释器 4.安装Python 5.第一个Python程序 Hello World 6.P ...

随机推荐

  1. 毕业设计总结(1)-canvas画图

    去年6月底完成的毕业设计,到现在也才开始给它做个总结,里面有很多可以学习和借鉴的东西. 我的毕业设计的题目是“一种路径规划算法的改进与设计”,具体的要求可参见下面的表格: 题目 一种路径规划算法的改进 ...

  2. Android6.0------权限管理

    此博客主要谈谈Android6.0的权限,关于其他6.0的知识 请看https://developer.android.com/about/versions/marshmallow/android-6 ...

  3. CCS5 学习笔记1

    CCS5 学习笔记1 2013-09-15 10:35:49 周日边学习ccs5使用边写笔记,准备用一天时间好好学习下ccs5怎么使用,便于以后工作向ccs5平台迁移!

  4. os模块、文件压缩 、匹配文件后缀名:fnmatch glob

    一.os模块 os模块:是python是系统交互的模块 import os # 0平台信息的一些操作 python是夸平台的,所以内部兼容了不同的平台 1. os.name # 操作系统 nt是win ...

  5. linux basename学习

    basename 用法 basename 名称 [后缀]   例子 1. $: basename /tmp/test.sh 输出: test.sh 2. $: basename /tmp/test.s ...

  6. C# Http方式下载文件到本地类

    直接上代码: using System; using System.Collections.Generic; using System.Linq; using System.Text; using S ...

  7. ['1','2','3'].map(parseInt) 返回的是什么?

    返回的是:[1,NaN,NaN] 首先我们先分析一下  parseInt  函数: parseInt()函数解析一个字符串参数,并返回指定基数的整数(数学系统中的基数). 它可以有两个参数,用法:pa ...

  8. Linux文件操作及管理

    ---恢复内容开始--- 一.Linux系统的结构 1.Linux是一个倒树型结构,最大的目录名称为“/”(根目录) 2.Linux系统的二级目录 /bin     ##binary二进制可执行文件, ...

  9. c++下使用命名管道实现进程间通信

    前面已经使用邮槽实现过进程间通信:http://www.cnblogs.com/jzincnblogs/p/5192654.html ,这里使用命名管道实现进程间通信. 与邮槽不同的是,命名管道在进程 ...

  10. three.js入门系列之导入拓展类

    先来看一下three.js包的目录结构: 我们使用的时候,可以一次性import所有的功能,也可以按需引入,全依赖three.module.js这个文件对three.js的功能作了模块化处理: 但是, ...