python嵌入c++
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++的更多相关文章
- 如何让python嵌入html实现类似php的快速开发,十分有价值
1.在一个文件夹名为www.html3.com的web项目来实现,首先到nginx的配置文件nginx.conf做如下配置 python和html混合编写的文件,我以文件后缀为.phtml,通过服务器 ...
- boost.python入门教程 ----python 嵌入c++
Python语言简介 Python是一种脚本语言.以开放的开发接口和独特的语法著称.尽管Python在国内引起注意只有几年的时间,但实际上Python出现于上世纪90年代(据www.python.or ...
- 在应用中嵌入Python:转
在应用中嵌入Python 前面的章节讨论如何扩展Python,如何生成适合的C库等.不过还有另一种情况:通过将Python嵌入C/C++应用以扩展程序的功能.Python嵌入实现了一些使用Python ...
- 将Python代码嵌入C++程序进行编写
将Python代码嵌入C++程序进行编写的实例,python嵌入 把python嵌入的C++里面需要做一些步骤 安装python程序,这样才能使用python的头文件和库 在我们写的源文件中增加“Py ...
- 工程脚本插件方案 - c集成Python基础篇(VC++嵌入Python)
序: 为什么要集成脚本,怎么在工程中集成Python脚本. 在做比较大型的工程时,一般都会分核心层和业务层.核心层要求实现高效和稳定的基础功能,并提供调用接口供业务层调用的一种标准的框架划分.在实际中 ...
- 在 C 代码中嵌入 Python 语句或使用 Python 模块 (Visual Studio 2013 环境设置)
1) 新建一个 内嵌 Python 语句的 C 代码, // This is a test for check insert the Python statements or module in C. ...
- Python高手之路【一】初识python
Python简介 1:Python的创始人 Python (英国发音:/ˈpaɪθən/ 美国发音:/ˈpaɪθɑːn/), 是一种解释型.面向对象.动态数据类型的高级程序设计语言,由荷兰人Guido ...
- 【Python五篇慢慢弹】快速上手学python
快速上手学python 作者:白宁超 2016年10月4日19:59:39 摘要:python语言俨然不算新技术,七八年前甚至更早已有很多人研习,只是没有现在流行罢了.之所以当下如此盛行,我想肯定是多 ...
- Python小白的发展之路之Python基础(一)
Python基础部分1: 1.Python简介 2.Python 2 or 3,两者的主要区别 3.Python解释器 4.安装Python 5.第一个Python程序 Hello World 6.P ...
随机推荐
- spring mvc:练习:javaConfig配置和注解
Spring4 MVC HelloWorld 注释/JavaConfig为示例,一步一步以简单的方式学习Spring4 MVC 的注解,项目设置,代码,部署和运行. 我们已经使用XML配置开发了一个H ...
- VS2013 The Debugger Resource DLL is out of date
折磨了我一天的问题,亲们,记住,下载vs2013 update5 ,别的方法不用试了,完全没用!
- 1004: [HNOI2008]Cards burnside定理
https://www.lydsy.com/JudgeOnline/problem.php?id=1004 输入数据保证任意多次洗牌都可用这 m种洗牌法中的一种代替,且对每种洗牌法,都存在一种洗牌法使 ...
- 【SystemTap】 Linux下安装使用SystemTap源码安装SystemTap
转自 http://blog.csdn.net/zklth/article/details/6248558 文章 http://blog.csdn.net/zklth/archive/2010/09/ ...
- Less开发指南(二)- 基本语法
(一)嵌套规则 [1]less可以让我们以嵌套的方式编写层叠样式,先看下面这段CSS: .box-a .hd { height: 20px; } .box-a .bd .txt { color: #0 ...
- BGP&RIP
策略路由是2000之前 如果不通检查是否有相互影响的策略 BGP 25端 查看 25是上端起lan 地址是172.100.1.254 互联158是下端起wan 172.100.1.158 25的内 ...
- opencv:图像的基本变换
0.概述 图像变换的基本原理都是找到原图和目标图的像素位置的映射关系,这个可以用坐标系来思考,在opencv中, 图像的坐标系是从左上角开始(0,0),向右是x增加方向(cols),向下时y增加方向( ...
- div居中和table居中,jQuery获取下拉列表值
一.div居中 margin-left: auto;margin-right: auto; <div style="width:960px ; margin-left: auto;m ...
- 了解jmeter
JMeter是Apache组织的开放源代码项目,100%的用java实现应用.用于压力测试和性能测试.它最初被设计用于Web应用测试但后来扩展到其它测试领域. jmeter和loadrunner的对比 ...
- 2017-2018-2 20165202 实验三《敏捷开发与XP实践》实验报告
一.实验报告封面 二.实验内容 XP基础 XP核心实践 相关工具 三.实验步骤 (一)格式化代码 实验要求: 在IDEA中使用工具(Code->Reformate Code)把下面代码重新格式化 ...