分类 Python 下的文章

使用C/C++编写Python模块扩展


起步

这是我第一次尝试用c语言给其他语言编写扩展,期望我后面能强到可以为php编写扩展。现在用的python,写的模块也大都是python自身语言写的,为了获得优越的执行性能,利用Python提供的API,如宏,类型,函数等来编写扩展。

前期准备

此次编写的环境为:

  • 系统:Ubuntu 15.10
  • GCC:5.2.1
  • Python:2.7.10

环境版本不一致一般也不会有什么问题,确保已安装python的开发包:sudo apt-get install python-dev


Tornado学习之网站制作篇


  之前介绍过Tornado是一个多用途的Python框架,下面通过两个例子四个方面来介绍如何利用Tornado来制作网站(不适合制作大型网站)。   先看一个简单的例子:

import tornado.httpserver
import tornado.ioloop
import tornado.options
import tornado.web

from tornado.options import define, options

define("port", default=8888, help="run on the given port", type=int)

class MainHandler(tornado.web.RequestHandler):
    def get(self):
        self.write("Hello, world")

def main():
    tornado.options.parse_command_line()
    application = tornado.web.Application([
        (r"/", MainHandler),
    ])
    http_server = tornado.httpserver.HTTPServer(application)
    http_server.listen(options.port)
    tornado.ioloop.IOLoop.current().start()

if __name__ == "__main__":
    main()


Python调用系统函数:pexcept模块


起步

人生苦短,我用python!最近涉猎也是越来越广了。需要创建ftp用户,然而创建用户是需要root的权限才能执行的,更是需要后续输入,好在有pexcept可以实现自由交互

举个栗子

要确定pexpect模块已安装:sudo pip install pexpect 看一个用sudo权限touch一个文件:

#!/usr/bin/env python
# coding=utf-8
import pexpect

cmd = "sudo touch sudo_touch"
passwd = '***'

run = pexpect.spawn(cmd)
try:
    run.sendline(passwd)
    ouput = run.read()
    print ouput
except:
    print 'Error'


OpenStack TaskFlow的介绍


前言

TaskFlow是OpenStack中的一个Python库,主要目的是让task(任务)执行更加容易可靠,能将轻量的任务对象组织成一个有序的流。

若未安装taskflow到环境中:

pip install taskflow

目前TaskFlow支持三种模式:

  • 线性:运行一个任务或流的列表,是一个接一个串行方式运行。
  • 无序:运行一个任务或流的列表,以并行的方式运行,顺序与列表顺序无关,任务之间不存在依赖关系。
  • 图:运行一个图标(组节点和边缘节点)之间组成的任务/流依赖驱动的顺序。


Tornado学习之入门篇


  简单来说Tornado是Python写的一个框架,这个框架的特别之处在于它既是一个Web framework,也可以是Web Server(facebook用它做FriendFeed),采用异步IO模型,支持WSGI,在官方定义的4种功能中,它还可以作为协同组件,即和其它框架一起使用,包括Django。这几种功能并不冲突,使用主要取决于需求。总之,Tornado是一个简单高效的多用途框架。