在CentOS上安装Python3环境

296 阅读2分钟

安装前环境

CentOS Linux release 7.8.2003 (Core)

Python版本:3.7.6

关于版本的选择,如果应用于生产环境,尽量选择当前最新的稳定版本。

准备工作

在CentOS上预装相应的组件

yum install -y gcc openssl-devel bzip2-devel expat-devel gdbm-devel readline-devel sqlite-devel libffi-devel tk-devel wget curl-devel python-devel libffi-devel

下载python安装包

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

安装Python3

解压文件

tar -zxvf Python-3.7.6.tgz

编译及安装, 依次运行以下命令,其中,参数**--enable-optimizations**指最优化安装

cd Python-3.7.6
./configure --prefix=/usr/local/python3 --enable-optimizations
make && make install

编译和安装完成,即可查看python版本

python -V

若想在命令行界面直接可以用Python3,则需要创建软连接

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

或者将python3的路径添加到环境变量中

(对所有用户生效)

echo export PATH="$PATH:/usr/local/python3/bin" >> /etc/profile 
source /etc/profile

(只对当前用户生效)

echo export PATH="$PATH:/usr/local/python3/bin" >> ~/.bashrc
source ~/.bashrc

配置pip3及第三方包安装

因国内访问官方的pypi下载有时候会比较慢,因此可配置国内的pypi源。 常用的pypi源可参考链接: 全局用户的Pip配置文件要写到~/.pip/pip.conf文件中

以豆瓣的pypi源为例 pypi.doubanio.com/simple/

在pip.conf中添加以下内容:

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

python包自带的pip3版本有时候往往比较旧,可以先对pip3进行升级

python -m pip install --upgrade pip

安装/卸载已安装的python包

pip3 install/uninstall [包名] 

若想快速的安装与其他服务器相同的组件 可先在其他服务器上执行

pip freeze >> /tmp/list.txt

list.txt文件一般长这样

bcrypt==3.2.0
cffi==1.14.2
cryptography==3.0
fastapi==0.61.0
paramiko==2.7.1
pycparser==2.20
pydantic==1.6.1
PyMySQL==0.10.0
PyNaCl==1.4.0
six==1.15.0
starlette==0.13.6

回到已安装好的服务器,执行:

pip install -r /tmp/list.txt

若要在离线环境安装,则需要先在已安装好的机器上下载离线包:

mkdir /data/packages
pip download -r /tmp/list.txt -d /data/packages

此时安装命令变为

pip install --no-index --find-links=/data/packages -r /tmp/requirements.txt

其他pip3常用命令 查看python包的安装信息

pip3 show [包名] 

查看已经安装了哪些第三方包

pip3 list

问题及解决方案

1.找不到'_ctypes'

ModuleNotFoundError: No module named '_ctypes'

未完全安装packages所依赖的编译环境

参考链接:www.jianshu.com/p/d5e8704c9…

2.无法导入__ssl

ImportError: No module named _ssl

当前需要的openssl版本最低为1.0.2,但是centos 默认的为1.0.1,所以需要重新更新openssl

参考链接:www.jianshu.com/p/3ec24f563…