标签归档:python

RSS feed of python

最后更新于 .

最近一直在思考,如果又那么多需求需要在vim里面调试gdb,执行python文件,链接数据库,与其每一个都去用vim脚本实现,为什么不直接把终端所有操作接管呢?

然后我去了www.vim.org的首页,然后,我居然真的看到了这个插件:
Conque Shell
下载链接:http://www.vim.org/scripts/script.php?script_id=2771
这个插件目前的评分是 Rating 447/122, Downloaded by 1280 ,也就是差不多每个评分的人都是4分(Life Changing!),而我也是毫不犹豫的选择了这个选项。

废话不多说,先来上图,对,你没有看错,这真的是vim.
在vim中打开bash:

  bash  
在vim中连接mysql:

mysql
在vim中打开python解释器:

python

哈哈,怎么样~~,是不是真的很酷!,OK,还有两张图,我们在最后再贴出来。来看一下这个插件的详细信息吧

一.简介 ...

最后更新于 .

好吧,用pickle的过程真是不顺利……,在mod_python中使用pickle调用dumps向server发包的时候,server那端解包loads时,会报如下错误:

ImportError: No module named _mp_6dce10900009df6fcff2918ac677e596

网上一堆资料,还全是英文,结果最后居然在一个留言里找到了答案……
方法就是,指定class的__module__属性:

#自定义类名为MManRsp,所属模块为mmanpro
MManReq.__module__ = "mmanpro"

答案链接页面:
http://www.modpython.org/pipermail/mod_python/2008-July/025442.html

之后在实例化类对象,调用dumps方法即可。

最近python相关的文章比较多,呵呵,希望博友不要介意~

最后更新于 .

在用C/C++写网络打包/解包时,都是自己用指针偏移来实现对象<->二进制之间的互转,现在既然用了python,也要用一下序列化的思想,所以就使用cPickle来完成这件事情。

不过事情并不顺利……
假设我们在server端和client端通过类MManRsp来进行通信,这个类定义在mmanpro.py中,代码如下:

class MManRsp:
    ret = 0
    pathverlist = []

现在server端对client端回包如下:(源代码并非如此,为了演示,所以简化了代码)

rsp = MManRsp()
data = [('1',1),('2',2)]
for t in data:
    x = do_something(t)#还是返回('1',1)这种类型
    rsp.pathverlist.append(x)
senddata = cPickle.dumps(rsp)
#send

client端解析为:


rsp = cPickle.loads(recvdata ...

最后更新于 .

最近看《python核心编程》,书中实现了一个简单的1对1的TCPserver,但是在实际使用中1对1的形势明显是不行的,所以研究了一下如何在server端通过启动不同的线程(进程)来实现每个链接一个线程。

其实python在类的设计上已经考虑到了这一方面的需求,我们只要在自己的server上继承一下SocketServer.BaseRequestHandler就可以了。
server端代码如下:

#!/usr/bin/env python
import SocketServer
from time import ctime
HOST = ''
PORT = 21567
ADDR = (HOST, PORT)
class MyRequestHandler(SocketServer.BaseRequestHandler):
    def handle(self):
        print '...connected from:', self.client_address
        while True:
            self.request.sendall('[%s] %s' % (ctime(),self.request.recv(1024)))
tcpServ = SocketServer.ThreadingTCPServer(ADDR ...

最后更新于 .

之前已经写了一篇linux下搭建python+apache的文章。但由于windows下的支持python2.6的mod_python.so一直没有找到下载(http://www.apache.org/dist/httpd/modpython/win/的下载列表里面并没有python2.6的支持),所以一直没有搭建。
今天偶尔在网上搜索mod_python-3.3.1.win32-py2.6-apache2.2.exe居然被找到了,虽然目前还不知道出处在哪里,但是起码可以用啦。

放出下载如下:

mod_python-3.3.1.win32-py2.6-apache2.2.exe

需要注意的就是安装结束会要求选择apache目录,一定要选择conf目录的上一级目录.
其他配置就不说了,和linux下是一样的。

最后更新于 .

今天尝试了一下搭建python+apache的环境,记录在这里,希望对大家有用. 一.安装apache(apache2.2.15) 到 http://httpd.apache.org 下载最新的apache源码,解压后进入目录: 我想把apache安装到/home/dantezhu/apache下,所以执行如下命令 执行:

./configure --prefix=/home/dantezhu/apache --enable-track-vars --enable-cgi --with-config-file-path=/opt/apache/conf --enable-modules=all --enable-mods-shared=all --enable-file-cache --enable-disk-cache --enable-cache --enable-mem-cache --enable-dumpio --enable-logio --enable-mime-magic --enable-headers --enable-usertrack --enable-version --enable-ssl --enable-http --enable-rewrite --enable-proxy --enable-proxy-connect --enable-proxy-http --enable-proxy-ftp --enable-proxy-ajp ...

最后更新于 .

最近一直在学python,的确为python的简洁所折服,因为工作中可能会经常用到python和c打交道的情况,所以研究了一下C语言扩展的写法,可能比较基础,让高手们见笑啦。

发现原来在windows和linux下面,对C扩展的编译方法是不一样的,我们先来看windows版的。

注:文章部分内容引用来自:
http://www.chinaunix.net/jh/55/563784.html

我们用C实现一个简单的加法。
首先新建一个文件add.c,代码如下:

#include <Python.h>;
static PyObject* add(PyObject *self, PyObject *args); 
//一定声明为static,把他们限制在这个文件范围里。 几乎所有的参数都是PyObject类型。 在python,每个东西都是object。 
static PyObject* add(PyObject* self, PyObject* args) 
{ 
    int x=0 ; 
    int y=0;
    int z=0;
    if ...

最后更新于 .

呃,之前在linux下编译过vim,这次由于gvim默认不支持python,所以心血来潮想要想在windows编译一下gvim,好吧,这纯属找虐……

一.准备工作:

1.Mingw,我用的版本是5.1.4

2.vim的源码文件

ftp://ftp.vim.org/pub/vim/pc/ 下载到vim72src.zip, vim72rt.zip, vim72lang.zip三个文件。 下载完之后, 把 vim72src.zp 和 vim72lang.zip 解压到 D:\makevim,查看D:\makevim\vim\vim72 这样的目录结构, 包含src,lang等目录。 vim72rt.zip的有些独特,先不要解压,直接打开看,里面vim\vim72下面会有autoload之类的文件和目录。新建一个目录D:\makevim\vim ...