2017-10-05 104 views
1

我已經在Anaconda內使用Spyder作爲IDE編寫了我的第一個python腳本。好極了!該腳本從谷歌金融中提取數據並將其發送給我。在Spyder中運行時,它工作正常。使用Cron運行用Spyder IDE編寫的python腳本

現在我想安排腳本在白天的特定時間運行。所以,研究後,我試圖建立工作,在cron使用下面的語法運行:

15 12 * * * users/paul/desktop/pythonscript.py 

我認爲這將在12:15運行腳本,但沒有任何反應。

我試圖在IDLE打開腳本並運行它或者從終端運行它進行試驗,但我不能讓任何這些工作,因爲它告訴我,沒有一個模塊是進口的。

所以......有人可以告訴我如何安排在Spyder中編寫的python腳本在特定時間運行嗎?

謝謝!

+0

看起來像你使用python3。是對的嗎?看到我下面更新的答案。你需要在cron中指定PATH。 – 9Breaker

+0

另外,由於這是您第一次使用cron,因此您應該知道在開放shell中不會看到任何輸出。該作業在後臺運行。如果您的腳本不輸出文件或創建日誌文件,那麼您的標準輸出將會丟失。如果您正在查找腳本正在運行的驗證,則需要將輸出發送到日誌文件。見https://superuser.com/questions/122246/how-can-i-view-results-of-my-cron-jobs – 9Breaker

回答

1

你需要指定範圍內的Cron的PATH變量,並確保python3是它。 (這看起來從你的意見,你正在使用python3,確保你知道,如果你使用的是2或3,只是打字蟒蛇通常會默認爲蟒蛇2)可以進行正常的編輯這樣用:

crontab -e 

然後在調用你的工作之前添加python的完整路徑。編輯:此路徑需要是您的anaconda環境python的路徑(以避免系統上其他版本的python之間的兼容性問題)。

PATH=path/to/anaconda/env/bin #you need to look this up 

15 12 * * * python3 users/paul/desktop/pythonscript.py 

How to get CRON to call in the correct PATHs

如果不包括包含在你的PATH森蚺環境python3的文件夾,它會不完全運行像它的Spyder一樣。如果你想知道蟒森蚺的版本是在bash中鍵入:

conda info --envs 
conda env list #or you could try this 

如果命令包含調用您的蟒蛇環境蟒蛇,那麼你就不需要在 pythonscript.py的家當。如果您不想要在crontab中的命令調用蟒蛇,然後包括在第一行的Python腳本的家當。

這些可能是有用的: run a crontab job using an annaconda env(見有第二個答案)

https://conda.io/docs/user-guide/tasks/manage-environments.html(引導管理暢達環境)

+0

我必須缺少一些東西。我把那個shebang放進去,並改變了路徑到20 9 * * /Library/Frameworks/Python.framework/Versions/3.6/bin/python3/Users/lindseymiller/Desktop/Notify2.py的完整路徑,它仍然贏得了'工作。錯誤的語法? – pmillerhk

+0

如果你想這樣做,你將需要兩者之間的空間。 yourLongPathToPython(確保有空格)yourPathToYourScript。 – 9Breaker

+0

如果你不想輸入python3的完整路徑,你也可以定義PATH變量(參見上面的例子)。這樣bash會查找PATH中指定的文件夾並嘗試查找python3。無論哪種方式都應該可以工作,但是如果你選擇定義PATH,那麼確保你準確地複製間距(當涉及到變量定義時,bash對於空格是特別的) – 9Breaker

0

首先檢查您的腳本是否包含python shebang。

#!/usr/local/bin/python 

上述會把你的蟒蛇enviornment的路徑,這將運行得很好或更改您的cron語法,並告訴它調用Python運行你的文件和

使用您的完整路徑您的文件如/ home /用戶/ .....

15 12 * * * python users/paul/desktop/pythonscript.py 
+0

謝謝,但它仍然無法正常工作。我在python中有這個shebang:#!/ usr/bin/env python3,cron標籤中的完整路徑是python /Users/paul/desktop/pythonscript.py。任何想法我做錯了什麼? – pmillerhk

+0

嘗試將用戶添加到它 15 12 * * * root python /Users/paul/desktop/pythonscript.py –