Skip to content

CentOS 安装 Python

安装 pyenv

安装

$ curl https://pyenv.run | bash

添加到环境变量到 .bashrc

export PATH="$HOME/.pyenv/bin:$PATH"
eval "$(pyenv init --path)"
eval "$(pyenv virtualenv-init -)"

启用

$ source ~/.bashrc

更新

$ pyenv update

安装编译支持

开发工具

$ yum groupinstall -y "Development Tools"

openssl

如果没有安装可能会报如下错误
ERROR: The Python ssl extension was not compiled. Missing the OpenSSL lib?
原因是 python3.7 的 ssl 模块依赖 openssl 1.0.2 或者 1.1 以上版本,如果 openssl 版本低于以上版本,将无法正常安装 python3.7 的 ssl 模块

这里我们安装最新版的 openssl 模块, 下载地址 : https://www.openssl.org/source/

$ sudo wget https://www.openssl.org/source/openssl-1.1.1l.tar.gz
$ sudo tar -xzvf openssl-1.1.1l.tar.gz
$ cd openssl-1.1.1l
$ sudo ./config --prefix=/usr --openssldir=/usr/openssl shared
$ sudo make
$ sudo make install

开发包

用于编译的时候对这些功能进行支持

$ yum install readline-devel zlib-devel sqlite-devel libffi-devel

使用 pyenv 安装 最新版

$ pyenv install --list
...
  3.9.7
  3.9.8
  3.10.0
  3.10-dev
  3.11.0a2
...
$ pyenv install 3.10.0 -vvv
$ pyenv global 3.10.0
$ python3
Python 3.10.0 (default, Nov  8 2021, 08:25:47) [GCC 4.8.5 20150623 (Red Hat 4.8.5-44)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>

安装成功

FAQ

ModuleNotFoundError: No module named ‘_ctypes’

Python3 中有个内置模块叫 ctypes,它是 Python3 的外部函数库模块,它提供兼容 C 语言的数据类型,并通过它调用 Linux 系统下的共享库(Shared library),此模块需要使用 CentOS7 系统中外部函数库(Foreign function library)的开发链接库(头文件和链接库)。
由于在 CentOS7 系统中没有安装外部函数库(libffi)的开发链接库软件包,所以在安装 pip 的时候就报了"ModuleNotFoundError: No module named ’_ctypes’"的错误

$  yum install libffi-devel -y

然后再重新安装 python3

参考


说明

创建时间: 2023-01-15 00:29:00 , 最后编辑于 2023-12-04 18:30:00