Skip to main content

CentOS 编译与安装 Python

安装开发套件

yum groupinstall 'development tools'
yum -y install zlib-devel python-devel gcc libffi-devel tk-devel libpcap-devel bzip2-devel db4-devel xz-devel openssl-devel ncurses-devel patch readline-devel gdbm-devel sqlite-devel


官网下载Python3.9.1源码压缩包

wget https://www.python.org/ftp/python/3.9.1/Python-3.9.1.tgz

也可以从 https://www.python.org/downloads/source/ 选择对应版本进入,下拉到 Files 表格,复制 [Gzipped source tarball] 版本的链接用 wget 进行下载

解压缩并进入目录

tar zxvf Python-3.9.1.tgz
cd Python-3.9.1/

编译和安装

./configure  # 这里可以用 --prefix={目录} 来自定义安装目录,默认为 /usr/local/lib/python3.9/
make && make install

安装完成,检查版本

Successfully installed pip-20.2.3 setuptools-49.2.1
[root@localhost Python-3.9.1]# python3 --version
Python 3.9.1
配置阿里云pip源
[root@localhost Python-3.9.1]# pip3 config set global.index-url https://mirrors.aliyun.com/pypi/simple/
Writing to /root/.config/pip/pip.conf

备注

如果认为 python3 和 pip3 输入起来比较麻烦,可以通过建立软链接和 Alias 别名的方式修改命令

已知 Poetry Shell 会默认选择 “python” 而非 “python3” 作为运行环境 当进入 Poetry Shell 时会报错: Running poetry fails with /usr/bin/env: ‘python’: No such file or directory

解决方法为修改脚本文件:

vi ~/.poetry/bin/poetry
将第一行
#!/usr/bin/env python
改为
#!/usr/bin/env python3

zipimport.ZipImportError: can't decompress data; zlib not available 解决办法

  1. 安装依赖zlib、zlib-devel
yum install zlib zlib
yum install zlib zlib-devel
  1. 重新编译安装Python
./configure
# 编辑Modules/Setup文件,找到下面这句去掉注释:#zlib zlibmodule.c -l$(prefix)/include-L$(exec_prefix)/lib-lz
# 重新编译安装:
make & make install