Python嵌入C++详解(1)
来CSDN的时候,刚刚接触Python,那时候对Python的嵌入部分很感兴趣,只是一直没有时间来弄清其面纱,因此也一直没有使用嵌入的功能,另一个原因是我还没有真正用Python写过一个正式的有用点的东西,不过,现在回过头来继续看这一部分,发现还是挺简单的。以前想把这部分翻译出来,可是由于时间原因,也没有那精力,所以这里我会将我所探究的每个Python/C嵌入部分函数都用实例来说明,我想看代码比我解释要通俗易懂。
再说helloworld之前,先不得不提下嵌入的配置问题。
步骤:
1:请到官网下载python的安装程序,安装python(我想这步有点多余,不过还是写上吧)
2:接着你可能还需要下载python(与安装版本相同)源代码,因为我们需要在debug下编译链接生成对应的debug库,若你能在网上找到别人已经编译好的库,你也可以直接用别人的。这样得到2个debug版本的.lib和.dll
3:将python目录下的include文件夹下的文件移到编译系统的include中,然后将release和debug版本的.lib和.dll放到指定的文件夹中(lib放到编译系统lib,dll放到windows/system32/)
4:好了,配置就此完成了。
来看代码:
#include "python/python.h" //我是将python那些头文件放在我自己建的名为python的文件夹中
int main(int argc,char** argv)
{
Py_Initialize();//该函数启动python解释器,算是初始化
////////////////////////
//载入文件的方式运行指令,FILE是C标准库stdio.h文件中的一个结构,习惯C语言的应该很熟悉(不过我还是第一次使用,汗...)
FILE * fr;
fopen_s(&fr,"test.txt","r");
PyRun_SimpleFile(fr,"test.txt");
fclose(fr);
//直接运行指令,指令都是字符串,注意3.1.1版的python必须加上小括号
PyRun_SimpleString("print('Hello world,I am python!')");
///////////////////////
Py_Finalize(); //该函数关闭python解释器,算是扫尾
return 0;
}
//附带test.txt
/*
from time import time,ctime
print('Today is', ctime(time()))
*/
文章出处:DIY部落(http://www.diybl.com/course/3_program/c/c_js/20090903/173641.html)
相关文档:
这篇文章是使用SQLite C/C++接口的一个概要介绍和入门指南。
由于早期的SQLite只支持5个C/C++接口,因而非常容易学习和使用,但是随着SQLite功能的增强,新的C/C++接口不断的增加进来,到现在有超过150个不同的API接口。这往往使初学者望而却步。幸运的是,大多数SQLite中的C/C++接口是专用的,因而很少被使用到。尽管有这 ......
Python中可以使用装饰器对函数进行装饰(或说包装),利用这个特性,可以很方便、简洁地解决一些问题,比如获得函数执行时间的问题。
首先,我们定义一个函数,如下:
def exeTime(func):
def newFunc(*args, **args2):
t0 = time.time()
print "@%s, {%s} start" % (time.strftime("%X", time.local ......
#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中的异常
当你的程序中出现某些异常的状况的时候,异常就发生了。
一.处理异常
我们可以使用try..except语句来处理异常。我们把通常的语句放在try-块中,而把我们的错误处理语句放在except-块中。
例如:
#!/usr/bin/python
# Filename: try_except.py
import sys
try:
s = raw_input('E ......
一位同学整理的常见笔试/面试题目,答案仅供参考,不代表本人观点。
这个东西有些参考价值,和同学讨论一下发现还是有些错误,
1.已知strcpy函数的原型是:
char * strcpy(char * strDest,const char * strSrc);
1.不调用库函数,实现strcpy函数。
2.解释为什么要返回char *。
解说:
1.strcpy的实现代码
char * st ......