1. 安装编译工具
确保以 root 用户身份操作,避免权限问题。使用以下命令一次性安装所有必要的编译工具:
yum -y groupinstall "Development Tools"
yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel libffi-devel
2. 下载 Python 3.7 源码包
从官方 Python 网站下载 Python 3.7.2 的源码包:
wget https://www.python.org/ftp/python/3.7.2/Python-3.7.2.tar.xz
3. 解压源码包
使用以下命令解压下载的源码包:
tar -xvJf Python-3.7.2.tar.xz
4. 创建安装目录
创建一个目录用于存放编译后的 Python 3.7 文件:
mkdir /usr/local/python3
5. 编译和安装 Python 3.7
进入解压后的目录并执行配置脚本:
cd Python-3.7.2
./configure --prefix=/usr/local/python3 --enable-optimizations --with-ssl
# --prefix 参数指定安装路径,避免文件分散到不同目录。
# --enable-optimizations 可以提高 Python 代码的运行速度。
# --with-ssl 确保安装过程中启用 SSL 支持。
编译并安装:
make && make install
6. 创建软链接
为了方便使用,创建 Python 3.7 和 pip3 的软链接:
ln -s /usr/local/python3/bin/python3 /usr/local/bin/python3
ln -s /usr/local/python3/bin/pip3 /usr/local/bin/pip3
7. 验证安装
检查 Python 3.7 和 pip3 是否安装成功:
python3 -V
pip3 -V
8. 处理常见错误
错误 1: zlib 未安装
如果遇到以下错误:
zipimport.ZipImportError: can't decompress data; zlib not available
请安装 zlib 开发库:
yum -y install zlib-devel
错误 2: _ctypes 模块未找到
如果遇到以下错误:
ModuleNotFoundError: No module named '_ctypes'
请安装 libffi 开发库:
yum -y install libffi-devel
这些依赖项已经在初始安装步骤中包含。
9. 安装 pipenv
在 CentOS 中使用 Python 3.7 或更高版本时,可能会遇到 SSL 相关的错误:
pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available.
解决方法是在配置过程中添加 --with-ssl 参数:
cd Python-3.7.2
./configure --with-ssl
make && make install
10. 修改 pip 源
为了加快包的下载速度,可以修改 pip 的安装源。在用户主目录下创建 .pip 文件夹,并在其中创建 pip.conf 文件:
cd ~
mkdir .pip
cd .pip
vim pip.conf
在文件中添加以下内容:
[global]
index-url = https://mirrors.aliyun.com/pypi/simple
对于 pipenv,可以在虚拟环境的 Pipfile 中修改源:
[root@localhost myproject]# vim Pipfile
[[source]]
name = 'pypi'
url = 'https://mirrors.aliyun.com/pypi/simple/'
verify_ssl = true
[dev-packages]
[packages]
[requires]
python_version = '3.7'