一、重要性
目前aiops服务和告警电话服务都是通过python开发,因此有必须要去学习python,至少保证读代码没有太大的障碍。
二、论python的简单性
默认包
python比起java简单的地方主要是在于:python在linux一般默认安装,并且会默认安装好包(路径为:/usr/lib/python2.7/site-packages),如sys,time
这样的话,我们只需要像写shell脚本一样直接写个python脚本就可以了。
但是java不行,java只要涉及到导入包,就得整个打包编写,很麻烦。所以,java都是工程性的,python可以直接写单个脚本文件。
包安装
python会默认安装一些常用包,如果我们有些其它包没有安装的话,我们可以直接通过pip命令进行安装。
pip 是 Python 包管理工具,该工具提供了对Python 包的查找、下载、安装、卸载的功能。
pip类似RedHat里面的yum,安装Python包非常方便。
三、pip相关命令
安装包
pip install SomePackage # 最新版本 pip install SomePackage==1.0.4 # 指定版本 pip install 'SomePackage>=1.0.4' # 最小版本
比如我要安装 Django。用以下的一条命令就可以,方便快捷。
pip install Django==1.7
升级包:pip install --upgrade SomePackage
升级指定的包,通过使用==, >=, <=, >, < 来指定一个版本号。
卸载包:pip uninstall SomePackage
搜索包:pip search SomePackage
显示安装包信息:pip show
四、python环境切换与服务启停
1、进入python环境:直接输入python即可。
2、退出python环境
在linux环境下退出python命令模式:使用 quit(), exit(), 或者Ctrl-D退出命令行。
3、启动python程序
直接通过python命令即可。
如python bbb.py
或者后台启动:nohup python bbb.py > bbb.log 2>&1 &
4、supervisor启动(只有启动了才能去管理其他服务进程,如启动python的进程)
以上说明启动完成,则可以去启动python项目:
命令:supervisorctl start AUTO_DIALER_API
注:supervisord -c /etc/supervisord.conf (看到殷豪是这么启动的)
5、关闭supervisor:先查出进程号,然后关闭
五、小知识点
1、下划线开头的标识符
以下划线开头的标识符是有特殊意义的。
以单下划线开头 _foo 的代表不能直接访问的类属性,需通过类提供的接口进行访问,不能用 from xxx import * 而导入;
以双下划线开头的 __foo 代表类的私有成员;以双下划线开头和结尾的 __foo__ 代表 Python 里特殊方法专用的标识,如 __init__() 代表类的构造函数。
2、Python用post方式调用接口
# This Python file uses the following encoding: utf-8
importurllib2
importurllib
#定义一个要提交的数据数组(字典)
data = {}
data['arg1'] ='arg1value'
data['arg2'] ='arg2value'
#定义post的地址
url =' http://www.baidu.com/api/report/getTraffic/'
post_data = urllib.urlencode(data)
#提交,发送数据
req = urllib2.urlopen(url, post_data)
#获取提交后返回的信息
content = req.read()
print content //调用接口后获取的结果,调用者可自行处理
3、问题记录:Python脚本运行出现语法错误
Python脚本运行出现语法错误:IndentationError: unindent does not match any outer indentation level
python脚本如下:
问题原因:是由于格式错误,对齐用的是点点点的空格,是和前面的几行的对齐所用的箭头表示的TAB键,是不匹配的,即代码的对齐,混用了TAB键和空格:
解决:将空格换成制表符。
注意:换的时候用复制的方式,不要直接按tab键,因为按tab键显示的还是....空格。