在MAC上获取crontab以运行anaconda安装的python脚本(未找到模块)

时间:2019-07-18 19:50:16

标签: python macos path cron anaconda

我正在尝试为通过蟒蛇安装的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的模块

2 个答案:

答案 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