从Python cron作业调用os.system()时出现问题
我使用的是从Python cron作业调用os.system()时出现问题,python,macos,path,cron,crontab,Python,Macos,Path,Cron,Crontab,我使用的是AnacondaPython安装,我还有一个Python脚本,当使用Python update\u data.py从shell调用时,它可以正常工作。然后,我用编写了一个简短的cron作业。然后我开始在Mac OS X El Capitan上遇到这些问题: os.system()在不应该返回时返回256 像Pandas、numpy这样的Python包不能正常工作 这是我的cron脚本 import os from crontab import CronTab tab = CronTa
Anaconda
Python安装,我还有一个Python脚本,当使用Python update\u data.py从shell调用时,它可以正常工作。然后,我用编写了一个简短的cron
作业。然后我开始在Mac OS X El Capitan上遇到这些问题:
os.system()
在不应该返回时返回256
像Pandas、numpy这样的Python包不能正常工作
这是我的cron
脚本
import os
from crontab import CronTab
tab = CronTab()
job_path = os.path.join(os.getcwd(), 'update_data.py')
python_path = "/Users/BJay/anaconda/envs/python3/bin/python "
cron_job = tab.new(command=python_path + job_path)
cron_job.minute.every(2)
tab.write()
print(tab.render())
我使用哪个python
的输出设置varpython\u路径。我没有提供有关update\u data.py
的信息,因为它可以从CLI
正常工作
当我在python3
环境中运行cron
时,我得到以下结果:
*/2 * * * * /Users/BJay/anaconda/envs/python3/bin/python /Users/BJay/myGitHub/update_data.py
下面是cron输出日志的摘录:
Subject: Cron <random@email.here> /Users/BJay/anaconda/envs/python3/bin/python /Users/BJay/myGitHub/update_data.py
X-Cron-Env: <SHELL=/bin/sh>
X-Cron-Env: <PATH=/usr/bin:/bin>
X-Cron-Env: <LOGNAME=MrBee>
X-Cron-Env: <USER=MrBee>
X-Cron-Env: <HOME=/Users/BJay>
===================================
0 of 0 repos updated successfully!
===================================
======以下是我正在尝试运行的脚本的主要部分========
for repo in list_of_local_repos:
repo_path = os.path.join(parent_path, repo)
git_sequence = "cd {0} && git add . && git commit -m 'updated' && git push origin master".format(repo_path)
if os.system(git_sequence) == 0:
repos_updated += 1
repos_updated
但是,当使用python filename.py
为CLI运行时,此脚本运行良好,os.system()
此处始终返回256
,因此repos\u updated
永远不会递增。我看不出您实际上在哪里调用os.system()
,您上次演示的PYTHONPATH
没有显示输出。我已向问题中添加了请求的其他信息。我看不出您实际上在哪里调用os.system()
,您上次演示的PYTHONPATH
没有显示输出。我已向问题中添加了请求的其他信息。
for repo in list_of_local_repos:
repo_path = os.path.join(parent_path, repo)
git_sequence = "cd {0} && git add . && git commit -m 'updated' && git push origin master".format(repo_path)
if os.system(git_sequence) == 0:
repos_updated += 1
repos_updated