liunx python2和3兼容和定时运行脚本

liunx python2和3兼容和定时运行脚本

python2和3兼容

前言说明

由于本地环境是 python3.6+ 的项目,centos上默认是 python2 ,且centos的很多应用都是 python2 来引导的,例如 yum ,所以需要让 python2和3共存

配置方法

输入以下命令查看当前版本 python 版本

Copy

python -V

查看安装位置,一般是位于 /usr/bin/python 目录下

Copy

which python

安装依赖包

Copy

yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel

建立一个空文件夹

Copy

mkdir /usr/local/python3

进入到文件夹下

Copy

cd /usr/local/python3 

然后根据自己需求下载不同版本的 Python3,我下载的是 Python3.8.2

Copy

wget https://www.python.org/ftp/python/3.8.2/Python-3.8.2.tar.xz

如果速度不够快,可以直接去官网下载,下载地址:

https://www.python.org/ftp/python/

然后解压压缩包,进入该目录,安装 Python3

Copy

tar -xvJf  Python-3.8.2.tar.xz

cd Python-3.8.2

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

make && make install

创建软链接

Copy

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

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

使用 python3 运行软件即可

Copy

python3 main.py

补充说明

默认安装后 pip 应该是 19 ,需要手动升级至 pip20

Copy

python3 -m pip install --upgrade pip --force-reinstall

如需升级 python2pip 把以上命令 python3 改成 python 即可

更新完成后再次链接下pip

Copy

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

查看两个版本的 pip 版本

Copy

pip -V

pip3 -V

 

注意:发现我的环境是python2运行是用的 python2 test.py

python3 是 python3 test.py

 

liunx定时运行脚本

让Python随Linux开机自动运行

准备好要自启的脚本auto.py

用root权限编辑以下文件

sudo vim /ect/rc.local

在exit 0上面编辑启动脚本的命令

/usr/bin/python3.5 /home/edgar/auto.py > /home/edgar/auto.log

最后重启Linux,脚本就能自动运行并打印日志了。

让Python脚本定时启动

准备好定时启动的脚本auto.py

用root权限编辑以下文件

sudo vim /etc/crontab

在文件末尾添加以下命令

2 * * * * root /usr/bin/python3.5 /home/edgar/auto.py > /home/edgar/auto.log

以上代码的意思是每隔两分钟执行一次脚本并打印日志。

crontab编写解释

基本格式

* * * * * user command
分 时 日 月 周 用户 命令

user 是用户名权限之类的,比如我的签到脚本就是:

30 8 * * * root python3 test.py

 

举例说明

1、每分钟执行一次

* * * * * user command

2、每隔2小时执行一次

* */2 * * * user command (/表示频率)

3、每天8:30分执行一次

30 8 * * * user command

4、每小时的30和50分各执行一次

30,50 * * * * user command(,表示并列)

4、每个月的3号到6号的8:30执行一次

30 8 3-6 * * user command (-表示范围)

5、每个星期一的8:30执行一次

30 8 * * 1 user command (周的范围为0-7,0和7代表周日)

 

参考链接:

https://cloud.tencent.com/developer/article/1720648

https://www.wgrid.cn/41.html



去留无意,宠辱不惊