氧化钙的菜🐔园地 氧化钙的菜🐔园地

每天进步亿点点,他日定可出任CEO,迎娶白富美,走上人生巅峰!

目录
linux crontab 不执行 pipenv 命令
/      

linux crontab 不执行 pipenv 命令

背景

我写了一个脚本,用于执行 python 项目。脚本前面的 git 命令是能执行的,但是到了 pipenv 就不会执行了。

但是手动运行脚本却能正确执行

问题原因

对于手动能运行,crontab 执行就不行,不用问了,99%的可能就是环境除了问题。crontab 在执行时,找不到pipenv,所以执行失败。

解决方法

解决方法有两种:

  1. 给 crontab 添加环境变量,例如把 pipenv 的路径添加到 crontab
  2. 执行 pipenv 命令时,指定 pipenv 的路径

给 crontab 添加环境变量

略过,没找到合适方法,有兴趣可以自己找找

指定 pipenv 的路径

首先看看我的脚本是怎么使用 pipenv 的

pipenv run python main.py

命令分解:

  • pipenv run:进入虚拟环境,执行 python 命令,执行后退出虚拟环境
  • python main.py:执行 main.py 文件

由于 crontab 找不到 pipenv,所以整个 shell 命令都没有运行。

我们首先要找到 pipenv 路径,可以使用:whereis pipenv,输出:「pipenv: /usr/local/bin/pipenv」

编辑 shell 脚本,指定 pipenv:

/usr/local/bin/pipenv run python main.py

标题:linux crontab 不执行 pipenv 命令
作者:氧化钙
地址:http://www.kidcaoblog.com/articles/2021/08/02/1627876604438.html