L. *_*ros 7 python scripts cron 18.04
我正在运行一个小 ubuntu 服务器(版本 18.04)
在升级到 18.04 之前,cron 执行得很好。
这是我的 crontab ( sudo crontab -e
) :
*/5 * * * * PYTHONPATH=/usr/bin/python3 /usr/bin/python3 /home/louis/backup-server/main.py >> /var/log/MYbackup.log 2>&1
Run Code Online (Sandbox Code Playgroud)
但是当 cron 启动时,会记录以下内容:
Traceback (most recent call last):
File "/home/louis/backup-server/main.py", line 7, in <module>
import config.config as config
File "/home/louis/python_helpers/config/config.py", line 2, in <module>
from dotenv import load_dotenv
ModuleNotFoundError: No module named 'dotenv'
Run Code Online (Sandbox Code Playgroud)
但是,如果我运行sudo python3 /home/louis/backup-server/main.py
脚本正确执行
我确实跑了 sudo pip install python-dotenv
脚本内容:
# /home/louis/backup-server/main.py
# permissions : -rwxr-xr-x
import os
import requests
import json
import datetime
import sys
sys.path.insert(0, '/home/louis/python_helpers')
import config.config as config
import mail
import utils
def main():
# some code
if __name__ == "__main__":
main()
Run Code Online (Sandbox Code Playgroud)
——
# /home/louis/python_helpers/config/config.py
# permissions : -rwxr-xr-x
import os
from dotenv import load_dotenv
dotenv_path = os.path.join(os.path.dirname(__file__), '.env')
load_dotenv(dotenv_path)
# some config var
Run Code Online (Sandbox Code Playgroud)
我确实有一个__init__.py
文件/home/louis/python_helpers/config
,如果我应该添加任何其他信息,请告诉我。
最让我感到困扰的是,如果手动启动,脚本运行得很好,但不像 cron 那样运行。
编辑:我不确定这个问题是属于这里还是在 stackoverflow 上,所以请告诉我是否应该移动它(即使我不知道除了创建一个新问题之外如何)
好吧,这个问题非常愚蠢,我确实运行了pip install python-dotenv
并且sudo pip install python-dotenv
(脚本需要 root 权限才能访问某个文件夹)但我没有运行sudo -H pip install python-dotenv
.
运行此命令后,cron 执行得很好。
归档时间: |
|
查看次数: |
18048 次 |
最近记录: |