maming

现象

之前分配给公司实习生一个任务,需要制作一个带python脚本的rpm包,在制作时后发现他的rpm编译过程不会自动编译出.pyc.pyo文件,所以安装出来的就不带.pyc.pyo文件,他的.py脚本安装目录为/usr/local/bin/test

...

在运行pip安装软件的时候,有些文档的写法如下

# python -m pip install xxx

看下python的帮助文档

# main python

-m module-name
    Searches sys.path for the named module and runs the corresponding .py file as a script.

直译过来就是以脚本的方式运行模块的相应py文件, 但是通过测试发现,大部分模块是不能这么玩的,比如:

...
2017-01-02
# 默认创建一个以list为子元素的list
>>> t_list = [[2,'z'], [1, 'y'], [3, 'x']]

# 1. 在未指定参数的情况下,默认的sort即为使用子元素的第一个元素排序
>>> t_list.sort()
>>> t_list
[[1, 'y'], [2, 'z'], [3, 'x']]

# 2. 通过key参数,可以指定使用子元素的那个第几个元素排序
# 此处以第一个元素排序
>>> t_list.sort(key=lambda x:x[0])
>>> t_list
[[1, 'y'], [2, 'z'], [3, 'x']]
# 此处以第二个元素排序
>>> t_list.sort(key=lambda x:x[1])
>>> t_list
[[3, 'x'], [1, 'y'], [2, 'z']]

# 3. 也可以通过自定义的函数排序
# 此处使用第一个元素比较进行排序
>>> t_list.sort(lambda x, y:cmp(x[0], y[0]))
>>> t_list
[[1, 'y'], [2, 'z'], [3, 'x']]
# 此处使用第二个元素比较进行排序
>>> t_list.sort(lambda x, y:cmp(x[1], y[1]))
>>> t_list
[[3, 'x'], [1, 'y'], [2, 'z']]

可能会有疑问,第三种方式和第二种一样的效果,有什么区别, 第三种方式只是用了cmp这个函数简单的比较了下大小,实际可以自定义函数进行比较, 从而实现更复杂的比较逻辑。

...