sf2gis@163.com
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
(演示样例程序源于网络)
- 本文已收录于以下专栏:
sf2gis@163.com的更多相关文章
- php使用CI发送qq和163邮件
1.需求 发送邮件 2.介绍 使用CI框架的email类库发送邮件,这里演示QQ和163 3.163使用教程 a.先去163邮件开启smtp邮件. b.在CI的控制器里写下面的代码 $this-> ...
- ubuntu修改163软件源
cd /etc/apt cat sources.list sudo su root sudo echo '' > sources.list nano sources.list 复制163软件源 ...
- 163邮箱问题:554 DT:SPM 163 smtp5,D9GowACHO7RNWNdXmXs1Bw--.9035S2
最近公司需要开发一个自定义邮箱功能,上网查询一下,利用163邮箱发送邮件. 由于163 的反垃圾机制,(坑爹机制.) 一般出现 554有在1)测试中用了test,测试,关键字在主题或者内容里面. 但是 ...
- centos 6.4 getmail 收取163 邮件
#CentOS 6.6 64bit 默认yum 源没有getmail rpm包#首先安装EPEL yum 源EPEL(Extra Packages for Enterprise Linux):http ...
- fedora配置163为yum的源
一种方法: 1.下载 http://mirrors.163.com/.help/fedora-163.repo 和 http://mirrors.163.com/.help/fedora-updat ...
- ubuntu15:10 163源
sudo vim /etc/apt/sources.list deb http://mirrors.163.com/ubuntu/ wily main restricted universe mult ...
- 163邮件出错:不允许使用邮箱名称。 服务器响应为: authentication is required,smtp7,C8CowEDpS0+Uke9VvSmXBg--.546S2 1441763733
原因:用163邮箱发邮件,需开启smtp服务,开启服务时,要求使用客户端授权码. 在.net中,使用smtp发邮件,在验证中使用的密码,是上面所讲的客户端授权码,而不是注册和web登录时用的邮箱密码. ...
- javaMail使用163邮箱报535 Error: authentication failed
javaMail使用网易163邮箱或者是126或者是网易其他邮箱报535 Error: authentication failed javax.mail.AuthenticationFailedExc ...
- CentOS添加163源
1.备份/etc/yum.repos.d/CentOS-Base.repo mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-B ...
随机推荐
- 一张纸,折多少次和珠穆拉峰一样高(for if 和break)
- Android之 看“马达”如何贯通Android系统 (从硬件设计 --> 驱动 --> HAL --> JNI --> Framework --> Application)
在Android 2.3(Gingerbread) 系统的时候,我写过一篇关于“Android 震动马达系统“的文章,当时的Linux内核还是2.6版本的.写那篇文章的目的,是想彻底的了解从硬件到驱动 ...
- Jquery----对文档操作
jquery对css操作: 1.CSS .css() - .css("color") -> 获取color css值 - .css("color", &q ...
- js----DOM对象(3
表格示例(取消,全选,反选): <!DOCTYPE html> <html lang="en"> <head> <meta charset ...
- 性能测试三十四:jvm内存结构(栈、堆、永久代)
Java内存管理机制 Java采用了自动管理内存的方式Java程序是运行在Jvm之中的Java的跨平台的基于Jvm的跨平台特性内存的分配和对象的创建是在Jvm中用户可以通过一系列参数来配置Jvm Jv ...
- python 全栈开发,Day124(MongoDB初识,增删改查操作,数据类型,$关键字以及$修改器,"$"的奇妙用法,Array Object 的特殊操作,选取跳过排序,客户端操作)
一.MongoDB初识 什么是MongoDB MongoDB 是一个基于分布式文件存储的数据库.由 C++ 语言编写.旨在为 WEB 应用提供可扩展的高性能数据存储解决方案. MongoDB 是一个介 ...
- extern "C" 回顾
引入:在测试"extern "C" 与gcc, g++无关"时,使用到了extern "C"的概念,网上找篇文章回顾一下. 试验如下: te ...
- JQuery中的工具类(五)
一:1.serialize()序列表表格内容为字符串.返回值jQuery示例序列表表格内容为字符串,用于 Ajax 请求. HTML 代码:<p id="results"&g ...
- requirejs模块路径配置问题
三种情况:一.设置data-main,没配置baseUrl,以data-main的文件为基准:二.设置data-main,配置baseUrl,baseUrl以值以引用require.js的HTML为基 ...
- Mysql linux -N命令
一.-e 和 -N /usr/local/bin/mysql -h127.0.0.1 -uroot -pxxxx -N -e "use abc; show tables;" -e ...