一 python环境配置
1.python编译环境
yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc make
2. 从官网下载python3的源码
wget https://www.python.org/ftp/python/3.8.1/Python-3.8.1.tar.xz
3.解压>>进入解压目录>>编译安装
# 先将xz压缩文件解压为tar文件
xz -d Python-3.8.1.tar.xz
# 再将文件解压
tar -xf Python-3.8.1.tar
# 进入python源文件目录,编译安装
cd Python-3.8.1
./configure prefix=/usr/local/python3
make && make install
4.安装结束,创建软连接
ln -s /usr/local/python3/bin/python3 /usr/bin/python3
ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3
ln -s /usr/local/python3/bin/virtualenv /usr/bin/virtualenv
# 执行命令
python3 -V #将会看到python3的版本
# 执行命令
python -V #将会看到python2的版本
二 创建虚拟环境
目的在于隔离各个项目,避免依赖包混乱,可运行不同python版本的项目
1. 切换到pip3所在目录/usr/local/python/bin
# 安装虚拟环境
pip3 install virtualenv
# 创建虚拟环境 ENV
virtualenv ENV
# 切换到虚拟环境所在的目录
cd ENV
# 启用该虚拟环境
source ./bin/activate
PS: 退出虚拟环境,执行命令 deactivate
三 安装项目依赖包文件
1. 单独逐个安装方式
# 以requests为例
pip3 install requests
2. 批量安装方式
2.1 导出本地项目依赖包清单
# 在pycharm控制台Terminal中执行
pip freeze >requirements.txt
2.2 上传requirements.txt文件至服务器
2.3 批量安装依赖包
pip3 install -r requirements.txt
3. 查看已安装的依赖包
pip3 list
安装peewee时遇到报错ModuleNotFoundError: No module named '_ctypes'
解决方案:https://blog.csdn.net/xfyanmeng/article/details/104203291
四 部署本地项目
1. 将本地python文件上传至服务器,例:放在root目录下pythonproject目录下
2. 项目中若有自定义模块则需将项目路径添加到python环境变量PYTHONPATH中,否则会报模块未找到错误
# 编辑root下bash_profile文件
vim .bash_profile
# 将项目路径添加至bash_profile文件,实际路径为自己项目存放路径
PYTHONPATH=.:/root/pythonproject
export PYTHONPATH
# 让修改生效
source .bash_profile
3. 运行python项目
python3 /root/pythonproject/demo.py
五 添加至crontab定时执行
1. 考虑到虚拟环境/自定义环境变量,不便于直接编辑crontab,将执行命令写入sh文件,定时执行该文件即可
crontest.sh文件内容
#!/bin/bash
source /root/.bash_profile
source /usr/local/python3/bin/ENV/bin/activate
python3 /root/pythonproject/tb/crontabtest.py
deactivate
2. 定时执行crontest.sh文件
# 编辑Linux crontab定时任务
crontab -e
# 添加一项任务,10分钟执行一次
0/10 * * * * sh /root/pythonproject/crontest.sh >> /root/pythonproject/cronlog.log 2>&1
# 0/10 * * * * 这段为crontab时间表达式,搜一下即可
# sh /root/pythonproject/crontest.sh 执行sh文件
# /root/pythonproject/cronlog.log 2>&1 将执行结果写入cronlog这个日志文件中,便于调试