1、下载boost1.52,http://www.boost.org/。解压文件到d:\boost\boost_1_52_0。

2、下载python2.7.3,http://www.python.org/;(boost1.4支持到python2.5)

3、安装python,我安装在了D:\Python25,环境变量设置PATH D:\Python25;

4、開始->程序->Microsoft Visual Studio 2010->Visual Studio Tools->Visual Studio 命令提示(2010)。打开一个控制台

5、在控制台依次输入以下3行:

cd d:\boost\boost_1_49_0

bootstrap.bat

bjam stage –toolset=msvc-9.0 –with-python –stagedir=”D:\boost_1_49_0\bin\vc9” link=static runtime-link=shared runtime-link=static threading=multi debug release

6、项目属性中配置例如以下

链接器里的附加库文件夹增加。python/libs(python的安装文件夹中),boost/vs2010/lib(生成的boost的文件夹中)

c/c++的附加库文件夹增加,boost(boost的下载文件夹),python/include(python的安装文件夹)

1、确认project中项目属性中配置例如以下

链接器里的附加库文件夹增加,python/libs(python的安装文件夹中),boost/vs2010/lib(生成的boost的文件夹中)

c/c++的附加库文件夹增加,boost(boost的下载文件夹),python/include(python的安装文件夹)

2、假设使用的是boost.python的静态库:在属性->预处理器->预处理器定义增加BOOST_PYTHON_STATIC_LIB,否则编译的为动态,会提示找不到python_boost*.lib什么的

c++程序

// python_test.cpp : 定义控制台应用程序的入口点。

//

#include "stdafx.h"
#include <iostream>
#include <boost/python.hpp> using namespace std;
using namespace boost::python; int _tmain(int argc, _TCHAR* argv[])
{
Py_Initialize(); // 初始化
object main_module = import("__main__");
object main_namespace = main_module.attr("__dict__"); // 运行多个python语句:创建一个hello.txt文本文件
str Lines =
"hello = file('hello.txt', 'w')\n"
"hello.write('Hello world first python!')\n"
"hello.close()";
exec(Lines, main_namespace); // 运行表达式
exec("result = 5 ** 2", main_namespace);
// 提取并查看变量result的值
int five_squared = extract<int>(main_namespace["result"]);
// 查看变量result的值
cout << "The five_squeared caculated by python is " << five_squared << endl; //载入sys module.
object sys = import("sys");
// 提取python的版本号信息
std::string version = extract<std::string>(sys.attr("version"));
std::cout << version << std::endl; //要求simple.py与可运行文件在同样路径下! 运行ok
str filename = "simple.py";
object simple = exec_file(filename, main_namespace, main_namespace);
object foo = main_namespace["foo"];
int val = extract<int>(foo(5));
cout << "Python has caculated foo as " << val << endl;
Py_Finalize(); cout << "My Python SUCCESS"<<endl ;
system("pause");
return 0;
}

在当前文件夹下建立一个simple.py的Python文件,内容例如以下:


def foo(i = 4):
return i**3

(演示样例程序源于网络)

  • 本文已收录于以下专栏:

Python调用C、C++库

Python调用C、C++库
sf2gis@163.com
2014年9月24日
 
1 目标:Python调用C/C++中的类或方法
ctypes是Python扩展库,自2.5以后開始增加...
  • sf2gis2
  • 2016年02月18日 15:48
  • 1332

C++调用Python并用Winpdb调试

近期在学习用C++ 调用Python, 发现用起来还挺方便的,就是在调试的方面遇到了些问题.
大部分Python IDE都提供了调试功能,比方Eric4, PythonWin, IDLE等, 不是这...
  • mishara
  • 2013年06月04日 13:42
  • 1623

c++调用python函数

由于淘宝开放平台(open.taobao.com)仅仅提供4种语言(c#,java.php,python)的接口api,c++没法操作,所以学习了下python。感觉python代码量非常少。但功能却非常强...
  • HongHuer
  • 2015年07月27日 13:24
  • 1244

C++调用python脚本

  • 2017年03月24日 18:10
  • 3KB
  • 下载

python调用c++动态库Demo

  • 2013年09月02日 09:55
  • 7KB
  • 下载

像VS/VC一样调试python调用的C++共享库

前面介绍了使用GDB调试python调用的c++共享库,可是对于习惯了IED调试的同学来说真的非常不习惯,那么以下就介绍一种使用IED调试python调用的C++共享库的方法。

代码还是前面的代码
代...

  • N_sev7
  • 2015年08月06日 11:46
  • 1465

python调用C/C++ demo

  • 2017年07月19日 15:12
  • 2KB
  • 下载

C++调用Python

  • 2012年01月09日 23:44
  • 297KB
  • 下载

C++中调用Python脚本(

转自 : http://blog.sina.com.cn/s/blog_5eb8ebcb0100skpv.html

C++中调用Python脚本的意义就不讲了,至少你能够把它当成文本形式的动...

  • xiaoxianerqq
  • 2016年08月18日 17:54
  • 242

Python调用C/C++动态链接库的方法具体解释

本文以实例解说了Python调用C/C++ DLL动态链接库的方法。具体示比例如以下:
演示样例一:
首先,在创建一个DLLproject(本例创建环境为VS 2005),头文件:

0...

  • Tony_Wong
  • 2014年08月02日 15:36
  • 546

sf2gis@163.com的更多相关文章

  1. php使用CI发送qq和163邮件

    1.需求 发送邮件 2.介绍 使用CI框架的email类库发送邮件,这里演示QQ和163 3.163使用教程 a.先去163邮件开启smtp邮件. b.在CI的控制器里写下面的代码 $this-> ...

  2. ubuntu修改163软件源

    cd /etc/apt cat sources.list sudo su root sudo echo '' > sources.list nano sources.list 复制163软件源 ...

  3. 163邮箱问题:554 DT:SPM 163 smtp5,D9GowACHO7RNWNdXmXs1Bw--.9035S2

    最近公司需要开发一个自定义邮箱功能,上网查询一下,利用163邮箱发送邮件. 由于163 的反垃圾机制,(坑爹机制.) 一般出现 554有在1)测试中用了test,测试,关键字在主题或者内容里面. 但是 ...

  4. centos 6.4 getmail 收取163 邮件

    #CentOS 6.6 64bit 默认yum 源没有getmail rpm包#首先安装EPEL yum 源EPEL(Extra Packages for Enterprise Linux):http ...

  5. fedora配置163为yum的源

    一种方法: 1.下载  http://mirrors.163.com/.help/fedora-163.repo 和 http://mirrors.163.com/.help/fedora-updat ...

  6. ubuntu15:10 163源

    sudo vim /etc/apt/sources.list deb http://mirrors.163.com/ubuntu/ wily main restricted universe mult ...

  7. 163邮件出错:不允许使用邮箱名称。 服务器响应为: authentication is required,smtp7,C8CowEDpS0+Uke9VvSmXBg--.546S2 1441763733

    原因:用163邮箱发邮件,需开启smtp服务,开启服务时,要求使用客户端授权码. 在.net中,使用smtp发邮件,在验证中使用的密码,是上面所讲的客户端授权码,而不是注册和web登录时用的邮箱密码. ...

  8. javaMail使用163邮箱报535 Error: authentication failed

    javaMail使用网易163邮箱或者是126或者是网易其他邮箱报535 Error: authentication failed javax.mail.AuthenticationFailedExc ...

  9. CentOS添加163源

    1.备份/etc/yum.repos.d/CentOS-Base.repo mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-B ...

随机推荐

  1. Socket 实现聊天功能

    注:本文来自:简书:jianshu 作者:jijs链接:http://www.jianshu.com/p/7c0722a8b66f來源:简书著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注 ...

  2. java 动态代理(类型信息)

    代理是基本的设计模式之一它为你提供额外的或不同的操作,而插入的用来代替"实际"对象的对象. package typeinfo; //: typeinfo/SimpleProxyDe ...

  3. 用PNChart绘制折线图

    写在前面 上一篇文章已经介绍过用PNChart绘制饼状图了,绘制折线图的步骤和饼状图的步骤是相似的,按照中的准备做好准备工作后就可以绘制折线图了. 开始使用 1.在view中声明一个PNLineCha ...

  4. python 全栈开发,Day142(flask标准目录结构, flask使用SQLAlchemy,flask离线脚本,flask多app应用,flask-script,flask-migrate,pipreqs)

    昨日内容回顾 1. 简述flask上下文管理 - threading.local - 偏函数 - 栈 2. 原生SQL和ORM有什么优缺点? 开发效率: ORM > 原生SQL 执行效率: 原生 ...

  5. [Reprinted] 使用Spring Data Redis操作Redis(一) 很全面

    Original Address: http://blog.csdn.net/albertfly/article/details/51494080

  6. nodejs模块——网络编程模块

    net模块提供了一个异步网络包装器,用于TCP网络编程,它包含了创建服务器和客户端的方法.dgram模块用于UDP网络编程. 参考链接:https://nodejs.org/api/net.html, ...

  7. 【算法】后缀自动机(SAM) 例题

    算法介绍见:http://www.cnblogs.com/Sakits/p/8232402.html 广义SAM资料:https://www.cnblogs.com/phile/p/4511571.h ...

  8. pyinstaller打包pyqt文件(转)

    pyinstaller打包pyqt文件  https://www.cnblogs.com/dcb3688/p/4211390.html   打包pyqt文件 如何将pyqt生成exe的二进制文件呢,p ...

  9. Windows10 下安装scrapy 日志

    Windows10 下安装scrapy 日志 1.下载python3.6 2.添加python.exe和pip.exe的路径到系统环境变量path中 如c:\python36_64 C:\Python ...

  10. 用redis来实现Session保存的一个简单Demo

    现在很多项目都用Redis(RedisSessionStateProvider)来保存Session数据,但是最近遇到一个比较典型的情况,需要把用户数据全部load到redis里面,在加上RedisS ...