Boost Python 实现C调用python错误解决方法
由于Boost Python跟不上Python版本更新,如下方法调用可能产生TypeError: 'NoneType' object does not support item assignment异常。
Boost Python文档中例子可能产生异常。
Py_Initialize();
object main_module = import("__main__");
object main_dict = main_module.attr("__dict__");
try{
object result = exec("result = 5 + 5",main_dict);
int five_squared = extract<int>(main_dict["result"]);
cout<<"extract value : "<<five_squared<<endl;
cin>>ij;
}
catch(error_already_set){
PyErr_Print();
cin>>ij;
}
可以如下方法解决
Py_Initialize();
object main_module = import("__main__");
object main_dict = main_module.attr("__dict__");
try{
handle<> ignored((PyRun_String(
"result = 5 ** 2"
, Py_file_input
, main_dict.ptr()
, main_dict.ptr())
));
int five_squared = extract<int>(main_dict["result"]);
cout<<"extract value : "<<five_squared<<endl;
cin>>ij;
}
catch(error_already_set){
PyErr_Print();
cin>>ij;
}
Boost Python中执行表达式函数也可以正常运行。
Py_Initialize();
object main_module = import("__main__");
object main_dict = main_module.attr("__dict__");
try{
object result = eval("5 + 5",main_dict);
int five_squared = extract<int>(result);
cout<<"extract value : "<<five_squared<<endl;
cin>>ij;
}
catch(error_already_set){
相关文档:
这篇文章是使用SQLite C/C++接口的一个概要介绍和入门指南。
由于早期的SQLite只支持5个C/C++接口,因而非常容易学习和使用,但是随着SQLite功能的增强,新的C/C++接口不断的增加进来,到现在有超过150个不同的API接口。这往往使初学者望而却步。幸运的是,大多数SQLite中的C/C++接口是专用的,因而很少被使用到。尽管有这 ......
#coding=utf-8
from newtest.wiki.models import WiKi
from django.template import loader, Context
from django.http import HttpResponse, HttpResponseRedirect
from django.shortcuts import render_to_response
def index(request, pagename=""):
"""显示正常页面,对页面的文字做特殊的链接处理"""
......
一个Python脚本的开发全过程
问题:完成一个可以为我们所有的重要程序做备份的程序。
步骤拆解:
需要备份的文件和目录由一个列表指定。
文件备份成一个zip文件。
zip存档的名称是当前的日期和时间。
我们使用标准的zip命令,它通常默认地随Linux/Unix发行版提供。Windows用户可以使用Info-Zip程序。注意 ......
Python中的异常
当你的程序中出现某些异常的状况的时候,异常就发生了。
一.处理异常
我们可以使用try..except语句来处理异常。我们把通常的语句放在try-块中,而把我们的错误处理语句放在except-块中。
例如:
#!/usr/bin/python
# Filename: try_except.py
import sys
try:
s = raw_input('E ......
C/S是Client/Server的缩写。服务器通常采用高性能的PC、工作站或小型机,并采用大型数据库系统,如Oracle、Sybase、Informix或 SQL Server。客户端需要安装专用的客户端软件。
B/S 是Brower/Server的缩写,客户机上只要安装一个浏览器(Browser),如Netscape Navigator或Internet Explorer,服务器安装Oracle、Sybase、In ......