记录一下 CentOS 编译安装 Python3 的过程。

安装系统相关依赖

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# https://github.com/pyenv/pyenv/wiki#suggested-build-environment
yum install -y zlib-devel bzip2 bzip2-devel readline-devel sqlite sqlite-devel openssl-static openssl-devel xz xz-devel libffi-devel findutils gcc

# 安装终端会话管理工具以便编译时喝茶
yum install -y screen tmux

# 安装mysqlclient驱动所需的依赖
yum install -y mysql-devel

# 遇到mysql_config问题
export PATH=$PATH:/usr/local/mysql/bin

# 遇到动态链接库问题
export LD_LIBRARY_PATH=/usr/local/mysql/lib

# 遇gcc编译错误(ld:cannot found -lc)
yum install -y glibc-devel

下载 python3 包

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

解压到当前目录

1
tar -zxvf Python-3.9.6.tgz

进入生成的目录进行配置

1
./configure --prefix=/usr/local/python3 --enable-loadable-sqlite-extensions --enable-optimizations

编译安装

1
make && make install

添加软连接

1
ln -s /usr/local/python3/bin/python3 /usr/bin/python3

其他

yum 搜索可用包

1
yum search python3 | grep devel

一键更新 python

1
python3 -m pip list --outdated --format=freeze | grep -v '^\-e' | cut -d = -f 1  | xargs -n1 pip install -U

切换豆瓣源

1
2
3
4
5
6
7
8
# 编辑 .pip/pip.conf 添加如下内容

[global]
index-url = https://pypi.douban.com/simple
trusted-host = pypi.douban.com

[list]
format = columns

离线安装python包

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 首先离线下载依赖包,比如 `tensorflow-cpu`,同时会下载所有的依赖项
python3 -m pip download -d packages tensorflow-cpu

# 下载和目标机器对应架构的依赖包
# https://pip.pypa.io/en/stable/cli/pip_download/
python3 -m pip download \
--only-binary=:all: \
--platform manylinux1_x86_64 --platform linux_x86_64 --platform any \
--python-version 36 \
--implementation cp \
--abi cp36m --abi cp36 --abi abi3 --abi none \
tensorflow-cpu

# 离线安装,指定寻找包的目录为 packages
python3 -m pip install --no-index --find-links=packages -r requirements.txt

评论

Powered By Valine
v1.4.14