08 2012 档案

摘要:作用:报告状态、错误和信息消息。logging模块定义了一个标准API,用来报告应用和库的错误及状态信息。由一个标准库模块提供日志API的主要好处在于:所有Python模块都可以参与日志记录,所有一个应用的日志还可以包含来自第三方模块的消息。一、示例把INFO等级以上日志输出到控制台, DEBUG等级以上日志写入日志文件。示例:#encoding:utf-8import logging# 创建一个loggerlogger = logging.getLogger('mylogger')logger.setLevel(logging.DEBUG)# 创建一个handler,用于写入 阅读全文
posted @ 2012-08-31 14:03 congbo 阅读(883) 评论(0) 推荐(0) 编辑
摘要:1、安装apachesudo apt-get install apache2为了测试apache2是否正常,访问http://localhost/或http://127.0.0.1/,出现It Works!即是安装成功。2、安装mysqlsudo apt-get install mysql-server其他配置参考ubuntu 安装配置 mysql3、安装相关模块sudo apt-get install libapache2-mod-php5 libapache2-mod-auth-mysqlphp5-mysql安装完成后重启apache:sudo /etc/init.d/apache2 re 阅读全文
posted @ 2012-08-31 09:57 congbo 阅读(950) 评论(0) 推荐(0) 编辑
摘要:tmux是一个优秀的终端复用软件,类似GNU Screen,但来自于OpenBSD,采用BSD授权。使用它最直观的好处就是,通过一个终端登录远程主机并运行tmux后,在其中可以开启多个控制台而无需再“浪费”多余的终端来连接这台远程主机;当然其功能远不止于此。ubuntu可以使用sudo apt-get install tmux来安装。安装完成后输入命令tmux即可打开软件,界面十分简单,类似一个下方带有状态栏的终端控制台;但根据tmux的定义,在开启了tmux服务器后,会首先创建一个会话,而这个会话则会首先创建一个窗口,其中仅包含一个面板;也就是说,这里看到的所谓终端控制台应该称作tmux的一 阅读全文
posted @ 2012-08-30 13:58 congbo 阅读(7564) 评论(0) 推荐(1) 编辑
摘要:有tmux、byobu,还用screen干嘛?因为服务器上大多还用的是screen。以下主要摘自:http://blog.catlovefish.com/?p=284,讲的很好。进入screen$ screen 在shell中直接用scrren就可以打开一个新的screen的session。$ screen -S name 可以打开一个名字叫做name的screen session,方别识别,也方便以后退出session后用screen -r name来返回session。也可以在进入session后,用“ctrl+a :”后输入sessionname name来修改sessionname。是 阅读全文
posted @ 2012-08-30 10:34 congbo 阅读(924) 评论(0) 推荐(0) 编辑
摘要:guake、tilda 很方便,按快捷键(如guake的F12)可以呼出、隐藏。这类终端还有个妙处:可以设置为置顶,可以设置为半透明。这两个特性结合起来,你可以...开着它们置顶,在它们后面做一些不太方便直接做的事情,比如聊天,看网页,什么的...别人不在电脑前很难看出来,比如工作场合,有时有事情需要处理,但是直接打开又不太好。Yakuake和guake使用形式一样,只不过是KDE环境中的,guake就是Yakuake的Gnome版本。guake参考:http://linuxtoy.org/archives/guake.htmlhttps://zh.wikipedia.org/wiki/Yak 阅读全文
posted @ 2012-08-29 14:49 congbo 阅读(798) 评论(0) 推荐(0) 编辑
摘要:IOError: [Errno 32] Broken pipeException in thread Thread-1:Traceback (most recent call last):File "/usr/lib/python2.6/threading.py", line 532, in __bootstrap_innerself.run()File "/home/mii/dianshang_test/dianshang_new_test/dianshang_current.py", line 77, in runself.c.crawl_step_ 阅读全文
posted @ 2012-08-28 10:04 congbo 阅读(3424) 评论(0) 推荐(0) 编辑
摘要:python 数据库连接池可以使用DBUtils模块。示例程序:#!/usr/bin/env python# encoding:utf8import sysreload(sys)sys.setdefaultencoding("utf-8")import timeimport MySQLdbfrom DBUtils.PooledDB import PooledDBimport lsconstSLEEP_FOR_NEXT_TRY = 3class DBTools: def __init__(self, host, user, passwd, db): self.host = h 阅读全文
posted @ 2012-08-28 09:38 congbo 阅读(2246) 评论(0) 推荐(0) 编辑
摘要:如:进程池个数为7,需要完成的任务为54,如果用满进程池,有以下几种简单的分法:7 7 7 7 7 7 128 8 8 8 8 8 68 8 8 8 8 7 7第三种分法最平均:54 754=(8*5)+(7*2)7=54/78=7+15=54%72=7-5python 实现:#!usr/bin/env python#encoding=utf-8def division(sum, num): remainder = sum % num quotient = sum / num result = [] for i in range(r... 阅读全文
posted @ 2012-08-27 21:40 congbo 阅读(3744) 评论(0) 推荐(0) 编辑
摘要:错误一:File "/usr/lib/pymodules/python2.6/MySQLdb/__init__.py", line 81, in Connectreturn Connection(*args, **kwargs)File "/usr/lib/pymodules/python2.6/MySQLdb/connections.py", line 170, in __init__super(Connection, self).__init__(*args, **kwargs2)_mysql_exceptions.OperationalError: 阅读全文
posted @ 2012-08-27 14:24 congbo 阅读(6088) 评论(0) 推荐(0) 编辑
摘要:示例1:import multiprocessingdef run(msg): print '%s, it works!' % msgdef start_process(): print 'Starting',multiprocessing.current_process().nameif __name__=='__main__': pool = multiprocessing.Pool(processes=2, initializer=start_process,) pool.apply_async(run('congbo')) 阅读全文
posted @ 2012-08-24 13:39 congbo 阅读(9253) 评论(5) 推荐(0) 编辑
摘要:作用:建立在thread模块之上,可以更容易地管理多个执行线程。通过使用线程,程序可以在同一个进程空间并发地运行多个操作。threading模块建立在thread的底层特性基础上,可以更容易地完成线程处理。1、调用函数要使用Thread,最简单的方法就是用一个目标函数实例化一个Thread对象,并调用start()让它开始工作。 1 import threading 2 3 def worker(num): 4 print 'worker' 5 return 6 7 threads = [] 8 for i in range(5): 9 t = threading.... 阅读全文
posted @ 2012-08-23 16:43 congbo 阅读(4497) 评论(0) 推荐(0) 编辑
摘要:作用:提供一个API来管理进程。multiprocessing模块包含一个API,它基于threading API可以在多个进程间划分工作。有些情况下,multiprocessing可以作为临时替换,取代threading来利用多个CPU内核,避免Python全局解释锁带来的计算瓶颈。类似python threading 两种创建方式,python multiprocess 也有两种创建方式:1、调用函数要创建第二个进程,最简单的方法就是用一个目标函数实例化一个Process对象,并调用start()让它开始工作。 1 import multiprocessing 2 3 def work.. 阅读全文
posted @ 2012-08-23 16:17 congbo 阅读(1580) 评论(0) 推荐(0) 编辑
摘要:python自2.6开始提供了多进程模块multiprocessing,进程池使用multiprocessing.pool,pool的构造如下:multiprocessing.Pool([processes[, initializer[, initargs[, maxtasksperchild]]]])processes表示pool中进程的数目,默认地为当前CPU的核数。initializer表示新进程的初始化函数。initargs表示新进程的初始化函数的参数。maxtasksperchild表示每个进程执行task的最大数目(该参数解释见python 进程池1 - Pool使用简介)。Poo 阅读全文
posted @ 2012-08-23 15:31 congbo 阅读(16077) 评论(0) 推荐(0) 编辑
摘要:有些情况下,所要完成的工作可以分解并独立地分布到多个工作进程,对于这种简单的情况,可以用Pool类来管理固定数目的工作进程。作业的返回值会收集并作为一个列表返回。(以下程序cpu数量为2,相关函数解释见python 进程池2 - Pool相关函数)。 1 import multiprocessing 2 3 def do_calculation(data): 4 return data*2 5 def start_process(): 6 print 'Starting',multiprocessing.current_process().name 7 8 if __nam.. 阅读全文
posted @ 2012-08-23 15:28 congbo 阅读(37270) 评论(0) 推荐(0) 编辑
摘要:相关代码如下:queue = multiprocessing.Queue()db = HandleSQL(conf_db, data_db, queue)错误信息如下:Exception in thread Thread-1:Traceback (most recent call last): File "/usr/lib/python2.6/threading.py", line 532, in __bootstrap_inner self.run() File "/usr/lib/python2.6/threading.py", line 484, 阅读全文
posted @ 2012-08-22 13:58 congbo 阅读(8084) 评论(0) 推荐(0) 编辑
摘要:相关代码:1 pool = multiprocessing.Pool(processes=pool_size, initializer=start_process)2 3 #process_cralwer = pool.apply_async(dianshang_current.main, args=(max_threads_num, db, i))4 5 process_cralwer = pool.apply_async(dianshang_current.main, args=(max_threads_num, db, seeds))max_threads_num为进程中的线程个数,db 阅读全文
posted @ 2012-08-22 11:35 congbo 阅读(5048) 评论(0) 推荐(0) 编辑
摘要:直接在右键里选择其他程序时手动加入VIM不能用 ,这是因为设置VIM必须“Terminal=true”,即在终端中打开才可以,/usr/share/applications 里为打开方式里有的程序,新建vim.desktop,输入:[Desktop Entry]Type=ApplicationExec=vim %fIcon=vimName=vimTerminal=trueNoDisplay=true然后右键打开方式就有vim了/etc/gnome/defaults.list 保存了全局的打开方式/.local/share/applications/mimeapps.list 保存了个人的打开方 阅读全文
posted @ 2012-08-16 22:11 congbo 阅读(528) 评论(0) 推荐(0) 编辑
摘要:python version:2.6httplib2 version:0.6 $Rev$(author:Joe Gregorio)错误信息:Traceback (most recent call last): File "/usr/lib/pymodules/python2.6/httplib2/__init__.py", line 1099, in request (response, new_content) = self._request(conn, authority, uri, request_uri, method, body, headers, redi... 阅读全文
posted @ 2012-08-16 10:44 congbo 阅读(2991) 评论(0) 推荐(0) 编辑
摘要:httplib2使用socksipy实现代理支持,示例代码如下:import httplib2 import socks client = httplib2.Http(proxy_info = httplib2.ProxyInfo(socks.PROXY_TYPE_HTTP, "190.253.95.219", 8080)) 很多代理连接死循环,一些代理连接失败,而用pycurl测试同样的代理无问题。python version:2.7httplib2 version:0.7.2socks verson:1.00socks.py模块介绍:http://socksipy.so 阅读全文
posted @ 2012-08-16 01:35 congbo 阅读(5413) 评论(0) 推荐(0) 编辑
摘要:PlayOnLinux 是使用 Python 写成的图形化前端,主要用来辅助 Wine 在 Linux 中安装面向 Windows 平台的程序和游戏,如 M$ Office 2003。另外,此程序也支持使用 Dosbox 来安装基于 Dos 的程序和游戏。 PlayOnLinux 包括如下特点: * 允许每个安装的程序有自己的 wineprefix 和目录; * 能够模拟重启; * 包含针对游戏的 Directx 安装选项; * 可以执行显卡测试 (使用 Glxgears、Glxmux 等); * 可以更新安装脚本; * 可以指定 Wine 版本; * 可以指定 Wine ... 阅读全文
posted @ 2012-08-15 21:08 congbo 阅读(1318) 评论(0) 推荐(0) 编辑
摘要:evernote在linux下的版本有nixnote、everpad。nixnote(need install java)http://sourceforge.net/projects/nevernote/files/For ubuntu user, Nixnote also available to install via PPA, do following on terminal :sudo add-apt-repository ppa:vincent-c/nevernotesudo apt-get updatesudo apt-get install nixnotenixnote(1.2 阅读全文
posted @ 2012-08-15 17:34 congbo 阅读(1678) 评论(0) 推荐(0) 编辑
摘要:linux 版本:Ubuntu 12.04.1 64-bitevernote 版本:Evernote_4.5.8.7356.exeupdate:提示升级后,升级为 Evernote_4.5.10.7472,跟windows 总升级一样,不需要额外操作。sudo apt-get install wine 后的wine版本为1.4.1,安装evernote后运行,提示如下错误:Could not connect to server. You need to be online to register or perform an initial sync.Please check your inte 阅读全文
posted @ 2012-08-15 17:18 congbo 阅读(3600) 评论(0) 推荐(0) 编辑
摘要:方法1:若为json 格式,使用json.loads 解码方法2:使用unicode_escape 解码方法3:使用evalIn [1]: import jsonIn [2]: s = '\u4f60\u597d\uff0c\u4ece\u6ce2\uff01'In [3]: print json.loads('"%s"' % s)你好,从波!In [4]: print s.decode('unicode_escape')你好,从波!In [5]: print unicode(s, 'unicode_escape 阅读全文
posted @ 2012-08-15 16:55 congbo 阅读(4184) 评论(3) 推荐(0) 编辑