#!/bin/bash # Desc: Python && pip upgrade # Author: Jeffrey.su # Mail: [email protected] # Date: Oct 09, 2014 # Home: http://suzf.net DOWN_PATH=/usr/local/src PY_VERSION=2.7.3 PY_BIN_NAME=python2.7 PY_OLD_VERSION=`python -V 2>&1 | awk '{print $2}'` function prepare_work(){ yum -y install zlib openssl openssl-devel curl wget gcc patch ncurses-devel # yum install ipython } function python_upgrade(){ cd ${DOWN_PATH} wget -c https://www.python.org/ftp/python/${PY_VERSION}/Python-${PY_VERSION}.tgz tar zxf Python-${PY_VERSION}.tgz cd Python-${PY_VERSION} ./configure --prefix=/usr/local/Python${PY_VERSION} --enable-shared make && make install mv /usr/bin/python /usr/bin/python_${PY_OLD_VERSION} cp /usr/bin/yum{,.old} && sed -i s/python/python${PY_OLD_VERSION}/ /usr/bin/yum ln -s /usr/local/Python${PY_VERSION}/bin/${PY_BIN_NAME} /usr/bin/python } function pip_upgrade(){ cd ${DOWN_PATH} curl -O https://pypi.python.org/packages/source/s/setuptools/setuptools-2.0.tar.gz tar zxf setuptools-2.0.tar.gz cd setuptools-2.0 python setup.py build && python setup.py install cd ${DOWN_PATH} curl -O https://pypi.python.org/packages/source/p/pip/pip-7.1.2.tar.gz tar zxf pip-7.1.2.tar.gz cd pip-7.1.2 python setup.py install mv /usr/bin/pip{,.old} && ln -s /usr/local/Python${PY_VERSION}/bin/pip /usr/bin/pip pip install readline } prepare_work python_upgrade pip_upgrade
Archive Dev
How-to: 使用 highcharts + MySQL 构建自己的简易网站监控系统
Highcharts 是一个用纯JavaScript编写的一个图表库。
Highcharts 能够很简单便捷的在web网站或是web应用程序添加有交互性的图表
Highcharts 免费提供给个人学习、个人网站和非商业用途使用。
HighCharts 特性
- 兼容性 - 支持所有主流浏览器和移动平台(android、iOS等)。
- 多设备 - 支持多种设备,如手持设备 iPhone/iPad、平板等。
- 免费使用 - 开源免费。
- 轻量 - highcharts.js 内核库大小只有 35KB 左右。
- 配置简单 - 使用 json 格式配置
- 动态 - 可以在图表生成后修改。
- 多维 - 支持多维图表
- 配置提示工具 - 鼠标移动到图表的某一点上有提示信息。
- 时间轴 - 可以精确到毫秒。
- 导出 - 表格可导出为 PDF/ PNG/ JPG / SVG 格式
- 输出 - 网页输出图表。
- 可变焦 - 选中图表部分放大,近距离观察图表;
- 外部数据 - 从服务器载入动态数据。
- 文字旋转 - 支持在任意方向的标签旋转。
Flask_Faq : AttributeError: 'module' object has no attribute 'autoescape'
前些天从 "spider_net" 上找了一篇文章 , 大致就是利用 highcharts + flask + mysql 构建的一个简单的监控系统 ,
经过几番挣扎终于还是给捣持出来了 , 现在总结一下 , 分享给大家 . o_O
部分报错信息:
* Detected change in 'flask_web.py', reloading
* Restarting with reloader
X.X.X.X - - [11/Jun/2015 15:24:14] "GET / HTTP/1.1" 500 -
Traceback (most recent call last):
...
...
File "/usr/lib64/python2.6/site-packages/jinja2/utils.py", line 195, in import_string
return getattr(__import__(module, None, None, [obj]), obj)
AttributeError: 'module' object has no attribute 'autoescape'
解决办法:
yum install python-pip -y
pip install --upgrade jinja2
redhat 官方宣称这是一个bug , for more :
https://bugzilla.redhat.com/show_bug.cgi?id=799087
Python pip 简单使用说明
简单来说 pip 就是 Python 的一个包管理工具, 和 yum / apt-get 有异曲同工之妙 。
好了, 会到正文
~\(≧▽≦)/~
1、安装 # yum install python-pip -y or # wget "https://pypi.python.org/packages/source/p/pip/pip-1.5.4.tar.gz#md5=834b2904f92d46aaa333267fb1c922bb" --no-check-certificate # tar -xzvf pip-1.5.4.tar.gz # cd pip-1.5.4 && python setup.py install # 升级 pip install --upgrade pip 2. 常用操作 # 安装 # pip install pkgname # python2 -m pip install pkgname # python3 -m pip install pkgname # 卸载 # pip uninstall pkgname # 升级 # pip install --upgrade pkgname # 检测更新 # pip list --outdated # 查看 # pip show --files pkgname # 查看某个库的信息: # pip show Jinja2 # 查看已经安装的库: pip list or pip freze 3. FAQ : ImportError No module named setuptools 请参考《ImportError No module named setuptools解决》 4. 参数说明 # pip -h Usage: pip [options] Commands: install 安装包. uninstall 卸载包. freeze 按着一定格式输出已安装包列表 list 列出已安装包. show 显示包详细信息. search 搜索包,类似yum里的search. wheel Build wheels from your requirements. zip 不推荐. Zip individual packages. unzip 不推荐. Unzip individual packages. bundle 不推荐. Create pybundles. help 当前帮助. General Options: -h, --help 显示帮助. -v, --verbose 更多的输出,最多可以使用3次 -V, --version 现实版本信息然后退出. -q, --quiet 最少的输出. --log-file 覆盖的方式记录verbose错误日志,默认文件:/root/.pip/pip.log --log 不覆盖记录verbose输出的日志. --proxy Specify a proxy in the form [user:passwd@]proxy.server:port. --timeout 连接超时时间 (默认15秒). --exists-action Default action when a path already exists: (s)witch, (i)gnore, (w)ipe, (b)ackup. --cert 证书.
Learn more : https://pypi.python.org/pypi/pip
Python pip 切换到阿里源
在使用 `pip` 安装 Python 模块的时候我们经常会遇到线面的错误
`ReadTimeoutError: HTTPSConnectionPool(host='pypi.python.org', port=443): Read timed out.
`
以至于安装模块的时候出现错误,之很让人不爽。
接下来我们将pip的源切换为阿里的源
cd $HOME mkdir ~/.pip cat > ~/.pip/pip.conf << EOF [global] index-url = http://mirrors.aliyun.com/pypi/simple/ [install] trusted-host = mirrors.aliyun.com EOF
Python 设置终端显示颜色、粗体、下划线等效果
也许你希望在终端上输出一些带有颜色或者粗体、下划线等样式的信息,就像man中的那样,那么这篇文章将会起到些许作用。
在Linux终端中,使用转义序列来进行如上所述的显示,转义序列以ESC开头,即ASCII码下的\033,其格式为:
\033[显示方式;前景色;背景色m
显示方式、前景色、背景色至少一个存在即可。
其中:
显示方式:0(关闭所有效果),1(高亮),4(下划线),5(闪烁),7(反色),8(不可见)。
前景色以3开头,背景色以4开头,具体颜色值有:0(黑色),1(红色),2(绿色),3(黄色),4(蓝色),5(紫色),6(青色),7(白色)。即前景绿色为32,背景蓝色为44。
下面是Python程序编写的输出样式脚本:
#! /usr/bin/python # -*- coding: utf-8 STYLE = { 'fore': { 'black': 30, 'red': 31, 'green': 32, 'yellow': 33, 'blue': 34, 'purple': 35, 'cyan': 36, 'white': 37, }, 'back': { 'black': 40, 'red': 41, 'green': 42, 'yellow': 43, 'blue': 44, 'purple': 45, 'cyan': 46, 'white': 47, }, 'mode': { 'bold': 1, 'underline': 4, 'blink': 5, 'invert': 7, }, 'default': { 'end': 0, } } def use_style(string, mode='', fore='', back=''): mode = '%s' % STYLE['mode'][mode] if STYLE['mode'].has_key(mode) else '' fore = '%s' % STYLE['fore'][fore] if STYLE['fore'].has_key(fore) else '' back = '%s' % STYLE['back'][back] if STYLE['back'].has_key(back) else '' style = ';'.join([s for s in [mode, fore, back] if s]) style = '\033[%sm' % style if style else '' end = '\033[%sm' % STYLE['default']['end'] if style else '' return '%s%s%s' % (style, string, end) def test(): print use_style('Normal') print use_style('Bold', mode='bold') print use_style('Underline & red text', mode='underline', fore='red') print use_style('Invert & green back', mode='reverse', back='green') print use_style('Black text & White back', fore='black', back='white') if __name__ == '__main__': test()
转自 Pythoner