从源码安装python3
本文在centos7.6系统上实践
此处下载最新的3.9.9版本,其他版本可以自行到https://www.python.org/ftp/python/
查看
/opt/python-3.9.9
可以根据习惯更换路径
python3安装后,不要卸载原有python2的任何包,因为python3和python2有很多不兼容的地方
操作系统有很多工具都依赖原有的python2,直接替换会导致包括在yum
在内的很多包不可用
简单介绍virtualenv的使用和原理
本文在centos7.6系统上实践
可以通过pip或者yum安装virtualenv,推荐使用pip安装,因为pip安装版本较新,老版本有些参数已经在新版本中废弃
pip安装virtualenv
yum安装virtualenv
Python2 两种表示字符序列的类型
Python3 两种表示字符序列的类型
Unicode是表现形式,utf-8 是存储形式,utf-8 虽然是使用最广泛的编码,但也仅仅是 Unicode 的一种存储形式罢了。
之前分配给公司实习生一个任务,需要制作一个带python脚本的rpm包,在制作时后发现他的rpm编译过程不会自动编译出.pyc
和.pyo
文件,所以安装出来的就不带.pyc
和.pyo
文件,他的.py脚本安装目录为/usr/local/bin/test
rpmbuild在编译时用到的脚本都在/usr/lib/rpm
这个目录下的脚本,通过在rpmbuild时的输出看出,当制作带python脚本的rpm包时,具体执行/usr/lib/rpm/brp-python-bytecompile
这个脚本,猫腻就在这个脚本的最后一段
在使用compileall模块的compile_dir函数时,使用了一个正则表达式参数:
安装依赖包, uwsgi-plugin-python这个包很重要,没有他uwsgi没法调用python程序
python-flask主程序, 就只有一个首页页面,显示"hi"
关闭防火墙
在运行pip安装软件的时候,有些文档的写法如下
看下python的帮助文档
直译过来就是以脚本的方式运行模块的相应py文件, 但是通过测试发现,大部分模块是不能这么玩的,比如:
可能会有疑问,第三种方式和第二种一样的效果,有什么区别,
第三种方式只是用了cmp这个函数简单的比较了下大小,实际可以自定义函数进行比较,
从而实现更复杂的比较逻辑。
此处需要注意的是,lambda的返回结果应该是>0或者<0,当然=0就没有大小之分
如果使用如下的方法,将得不到正确的排序结果
因为>比较的结果是:true/false, 而python会将false转成0, true转成1,这将导致lambda比较的结果永远>=0