我正在尝试为通过蟒蛇安装的python编写的脚本设置crontab。简单的.py运行(它只加载一个演示模块),并且可以在终端中使用python a.py运行。 问题是让crontab成为python和导入模块的路径。
我一直在尝试将PATH和PYTHONPATh设置为python目录以及大熊猫所在的位置。我认为这是一个环境问题,但不知道那是什么意思。有什么想法吗?
crontab是:
SHELL=/bin/sh
PYTHONPATH=/Users/Esel/anaconda3/bin/python
* * * * * cd /Users/Esel/Documents/x/y/z && python a.py
python(测试)脚本:
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Created on Thu Jul 18 21:36:34 2019
@author: Esel
"""
import pandas
print('hello kitty')
# This is a test
Crontab发送以下语句:
回溯(最近通话最近): 在第3行的文件“ a.py”中 进口大熊猫 ImportError:没有名为pandas的模块
答案 0 :(得分:0)
您要设置一个env.var,将其cd到目录中,然后调用解释器,所有这些操作均来自crontab。
在这种情况下,我个人觉得创建一个小的包装脚本(这里称为aes(x=as.factor(crawl), y=col))
)并执行crontab中的脚本会更优雅:
aes_string(x="crawl", y=colname))
答案 1 :(得分:0)
我想到了roadowl(thanx)的一些想法和另一个SOverflow问题(54564187),我想我已经开始运行它了。
SHELL=/bin/sh
PATH=$PATH/Users/Esel/anaconda3/bin:/Users/Esel/anaconda3/condabin:/Applications/anaconda3/bin:/Applications/anaconda3/bin:/Users/Esel/anaconda3/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
* * * * * cd /Users/Esel/Documents/x/y/z && python a.py
路径来自
echo $PATH