Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/338.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从Python cron作业调用os.system()时出现问题_Python_Macos_Path_Cron_Crontab - Fatal编程技术网

从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
    的输出设置var
    python\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