一、Python生态工具
一、Python内置小工具
1、秒级启动一个下载服务器
Python 内置了一个下载服务器就能够显著提升效率了 。 例如, 你的同事要让你传的文件位于某一个目录下,那么,你可以进入这个目 录 , 然后执行下面的命令启动一个下载服务器 :
Python2实现: python -m SimpleHTTPServer Python3实现: 在 Python 3 中,由于对系统库进行了重新整理,因此,使用方式会有不同: python -m http.server
执行上面的命令就会在当前目录下启动一个文件下载服务器, 默认打开 8000 端口 。 完成以后,只需要将 IP 和端口告诉同事,让同事自己去操作即可,非常方便高效 。
效果如下:
注意:如果当前目录下存在一个名为 index .html 的文件,则 默认显示该文件的内容 。 如果当前目录下不存在这样一个文件,则默认显示当前目录下的文件列表。
2、字符串转换为JSON
需求:在工作过程中,我们的系统会调用底层服务的 API。底层服务的 API一般都以 JSON 的格式返回,为了便于问题追踪,我们会将 API 返回的 JSON 转换为字符串记录到日志文件中。 当需要分析问题时,就需要将日志文件中的 JSON 字符串拿出来进行分析 。这个时候,需要将一个 JSON 字符串转换为 JSON 对象,以提高日志的可读性 。
解决:这个需求十分常见,以至于使用搜索引擎搜索 叮SON”,处于搜索结果的第一项便是“在线 JSON 格式化工具” 。 除了打开浏览器,使用在线 JSON 格式化工具以外,我们也可以使用命令行终端的 Python 解释器来解析 JSON 串,如下所示:
# echo '{" job":" developer"," name":" lmx"," s ex":"male " }' |python -m json.tool { " job": " developer", " name": " lmx", " s ex": "male " }
使用命令行解释器解析JSON 串非常方便,而且,为了便于阅读,该工具还会自动将转换的结果进行对齐和格式化。 如下所示:
# echo '{"signing": { "default": { "expiry": "8760h" }, "profiles": { "kubernetes-Soulmate": { "usages": [ "signing", "key encipherment", "server auth", "client auth" ], "expiry": "8760h" } } } }'|python -m json.tool { "signing": { "default": { "expiry": "8760h" }, "profiles": { "kubernetes-Soulmate": { "expiry": "8760h", "usages": [ "signing", "key encipherment", "server auth", "client auth" ] } } } }
二、pip的高级用法
1、pip常用子命令
1、pip的子命令对照表
2、系统安装pip
进入https://pypi.python.org/pypi/pip,下载第二项。
解压下载的文件(windows下只用解压工具解压如RAR,Linux下终端输入tar -xf pip-10.0.1.tar.gz,即tar -xf 文件名),进入解压后的文件夹中,调出命令行窗口或者终端
wget https://files.pythonhosted.org/packages/ae/e8/2340d46ecadb1692a1e455f13f75e596d4eab3d11a57446f08259dee8f02/pip-10.0.1.tar.gz tar xf pip-10.0.1.tar.gz cd pip-10.0.1/ ##Linux下操作用户是普通用户需要sudo授权操作 python setup.py install ##查看版本信息 pip -v
若安装报下面的错误
# python setup.py install Traceback (most recent call last): File "setup.py", line 6, in <module> from setuptools import setup, find_packages
解决办法如下(完美解决问题)
wget http://pypi.python.org/packages/2.7/s/setuptools/setuptools-0.6c11-py2.7.egg
sh setuptools-0.6c11-py2.7.egg
3、查找安装包
pip search flask
4、安装特定的安装包版本
pip install flask==0.8
5、删除/卸载安装包
pip uninstall Werkzeug
6、查看安装包的信息(-f显示安装包所在的目录)
pip show flask
7、查看安装包的依赖是否完整
pip check flask
8、列出已安装的包(有两种方法)
pip list (-o 查询可升级的包)
pip freeze
9、导出系统已安装的安装包列表到 requirements 文件
pip freeze > requirements.txt
10、从requirements文件安装需要的包
pip install -r requirements.txt
11、使用pip命令补全
pip completion --bash >~/.profile
$ source ~/.profile
12、下载包不安装
pip install <包名> -d <目录> 或 pip install -d <目录> -r requirements.txt
13、打包
pip wheel <包名>
14、升级指定的包(有两种方式)
pip install -U <包名>
或:pip install <包名> --upgrade
15、升级pip
pip install -U pip
2、加速pip安装的技巧
使用Python时间比较长的话,会发现 Python 安装的一个问题,即 pypi.python.org 不是特别稳定,有时候会很慢,甚至处于完全不可用的状态。
1、使用豆瓣或者阿里云的源加速软件安装
我们国内目前有多个pypi镜像,推荐使用豆瓣的镜像源或阿里的镜像源。
国内的镜像源地址: 阿里:https://mirrors.aliyun.com/pypi/simple 豆瓣:http://pypi.douban.com/simple 中国科学技术大学:http://pypi.mirrors.ustc.edu.cn/simple/
单次使用安装源:如果要使用第三方的源,只需要在安装时,通过 pip 命令的-i 选项指定镜像源即可。如下所示:(包名放置前后均可)
pip install -i http://pypi.douban.com/simple flask
指定全局安装源
在unix和macos,配置文件为:$HOME/.pip/pip.conf
在windows上,配置文件为:%HOME%\pip\pip.ini
[global] timeout = 6000 index-url = http://pypi.douban.com/simple