在Linux云主机上部署python3.8 并且不和系统原装py冲突

背景

部署Django工程至云主机

部署步骤

1、申请一些内部权限/略
2、使用root下载python3.8源码安装包

下载

3、解压,配置,编译,安装

解压:

cd /root/download/

tar xf Python-3.8.10.tgz

配置:

vi /root/download/Python-3.8.10/Modules/Setup
(把ssl相关的配置去掉注释) 注意SSL的路径需要和系统ssl路径一致
在Linux云主机上部署python3.8 并且不和系统原装py冲突_第1张图片

cd /root/download/Python-3.8.10

./configure --prefix=/usr/local/python3

编译,安装

apt-get install make ( 系统不预装make工具)

make && make install

4、创建虚拟环境(系统自带3.5,需要和安装的python3.8做好环境隔离)

这里已经在/home/userPath/python/project放好了工程代码

sudo -iu root

/usr/local/python3/bin/python3 -m venv /home/userPath/python/project/venv

source /home/space/python/project/venv/bin/activate
(确认已进入环境)
cd xxx/django_project/

pip3 install -r requirements.txt

5、创建启动脚本

用于一个django工程的快速启动,可以加上git pull这样就可以快速部署了
在Linux云主机上部署python3.8 并且不和系统原装py冲突_第2张图片

踩坑

1、不要卸载系统预装的python3.5,不要改apt源

云主机debian系统的apt工具依赖系统的python3.5,不要卸载

如果apt-get update异常直接找PE

2、安装python3.8(3.6及以上)需要配置ssl,否则pip安装时会报ssl错误

在解压后修改ssl的配置(部署步骤-3-配置)

通过whereis ssl 可以找到 ssl的路径

在Linux云主机上部署python3.8 并且不和系统原装py冲突_第3张图片

3、系统预装了openssl,但是openssl的依赖libssl-dev

root用户
apt-get install libssl-dev

4、云主机debian9 下MySQL 变成了mariadb

在安装 pip3 install mysql-client时会报错 mysql_config not found

需要安装下mariadb相关的客户端依赖

apt install libmariadbd18

apt install libmariadbd-dev

apt install mysql-client

5、其他可能需要的依赖,不报错可以不装

sudo apt-get install build-essential python-dev python-setuptools python-pip python-smbus
sudo apt-get install build-essential libncursesw5-dev libgdbm-dev libc6-dev
sudo apt-get install zlib1g-dev libsqlite3-dev tk-dev
sudo apt-get install libffi-dev

你可能感兴趣的:(python,linux,django,python)