安装前环境
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