Ubuntu 编译安装 Python3.8.0a4
如果你想体验一下,请用虚拟机(感受一下就行,别当真)。
仅测试
Ubuntu
新特性
整体来说,有三点特别需要注意一下
海象运算符
# python3.7 a = '123' if len(a): print(1)
# python3.8 if (b := len(a)): print(1)
整体这样理解
- 优先执行短赋值(借鉴
golang
)右边的代码- 将右边的代码执行结果赋值给左边变量
- 再执行
if
判断展示张图片
编译字节码可以单独指定存放位置
说白了可以通过设置环境变量
PYTHONPYCACHEPREFIX
来指定这个生成路径,你也可以在代码中使用sys.pycache_prefix
来获取这个生成路径最直接的作用就是
分发Python代码的时候可以只分发编译字节码包,从而一定程度上提高了Python的安全性
(可能)
更多细节,Python3.8.0a4官方文档
在
ubuntu1804
之后python3.7
存在,暂不替换(不设置软连接)。
python3.8
下载(支持Linux
,Windows
,Mac
)wget https://www.python.org/ftp/python/3.8.0/Python-3.8.0a4.tar.xz
安装
# 先决条件(这样可以避免两个个报错) apt-get install zlib* -y apt-get install libffi-dev -y
# unxz Python-3.8.0a4.tar.xz # tar -zxvf Python-3.8.0a4 # 解压Python-3.8.0a4.tar.xz包时,这里推荐手动提取,这样可以省去两条命令。如果python是在一个文件夹下,请确认非root用户拥有该文件夹的全县(递归) chown -R [非root]:[非root] Python-3.8.0a4
./configure --prefix=/usr/local/python3 --with-ssl
如果是
Centos
系统,安装报错均可在网上查阅到zipimport.ZipImportError: can't decompress data; zlib not available ... make: *** [Makefile:1168:install] 错误 1 #权限问题,需要非root用户拥有解压好的python文件夹权限。
apt-get install libffi-dev -y # 这条命令在解决 ModuleNotFoundError: No module named '_ctypes'无模块问题
出现以下,便是安装完成了!
... Collecting setuptools Collecting pip Installing collected packages: setuptools, pip Successfully installed pip-19.0.3 setuptools-40.8.0