Crontab 没有每 5 分钟执行我的 python 脚本
Crontab not executing my python script every 5 minutes
我知道很多人问同样的问题,但我看不到我的失败。
我的目标是每 5 分钟执行一次代码,这是我的 cron 行,
*/5 * * * * /usr/bin/python3 /home/myUserName/folder-name-path/main.py
我尽我所能,
- 脚本第一行有
#!/usr/bin/python3
- 如果我在没有 cron 的情况下执行我的脚本不会崩溃。
- 我做了
which python3
并说“/usr/bin/python3”。
谁能解释一下我错在哪里?
编辑:
根据@CherryDT 所说,我必须补充一点,我的项目结构类似于:
folder-name-path
|-> lib (folder) -> Some python scripts
|-> data (folder) -> Some CSV data
|-> temp (folder) -> A json file.
在我的脚本中,我将 python 文件导入为 from lib import foo
。
EDIT2:
好的,问题不在于我的 cron 脚本,问题在于我的主文件夹中的子文件夹。
我尝试安排另一个没有导入的脚本并且运行良好。然后我几乎可以肯定问题出在进口上。有人能告诉我我能做什么吗?我尝试从
开始
import os
os.chdir(os.path.dirname(__file__))
但是我有一个错误,FileNotFoundError: [Errno 2] No such file or directory: ''
我试过了
cwd = os.getcwd()
print(cwd)
我得到了主路径,/home/myUserName/folder-name-path
。
非常感谢!
最后问题出在我的代码中的路径上。 Crontab 需要绝对路径。
据我所知,它到达用户时没有问题,但如果你的主文件夹中有不同的子文件夹,它就会崩溃。
我解决这个问题的方法是获取主路径,cwd
,
import os
cwd = os.getcwd()
并定义在开头添加 cwd
的所有路径,例如在我的例子中:
csv_data = cwd + '/folder-name-path/data/myData.csv'
json_data = cwd + '/folder-name-path/temp/myTemp.json'
我还在我的 lib
文件夹中添加了 __init__.py
,不确定是否有必要,但这有助于 python 了解此文件夹有脚本。
谢谢!!
我知道很多人问同样的问题,但我看不到我的失败。
我的目标是每 5 分钟执行一次代码,这是我的 cron 行,
*/5 * * * * /usr/bin/python3 /home/myUserName/folder-name-path/main.py
我尽我所能,
- 脚本第一行有
#!/usr/bin/python3
- 如果我在没有 cron 的情况下执行我的脚本不会崩溃。
- 我做了
which python3
并说“/usr/bin/python3”。
谁能解释一下我错在哪里?
编辑:
根据@CherryDT 所说,我必须补充一点,我的项目结构类似于:
folder-name-path
|-> lib (folder) -> Some python scripts
|-> data (folder) -> Some CSV data
|-> temp (folder) -> A json file.
在我的脚本中,我将 python 文件导入为 from lib import foo
。
EDIT2:
好的,问题不在于我的 cron 脚本,问题在于我的主文件夹中的子文件夹。
我尝试安排另一个没有导入的脚本并且运行良好。然后我几乎可以肯定问题出在进口上。有人能告诉我我能做什么吗?我尝试从
开始import os
os.chdir(os.path.dirname(__file__))
但是我有一个错误,FileNotFoundError: [Errno 2] No such file or directory: ''
我试过了
cwd = os.getcwd()
print(cwd)
我得到了主路径,/home/myUserName/folder-name-path
。
非常感谢!
最后问题出在我的代码中的路径上。 Crontab 需要绝对路径。
据我所知,它到达用户时没有问题,但如果你的主文件夹中有不同的子文件夹,它就会崩溃。
我解决这个问题的方法是获取主路径,cwd
,
import os
cwd = os.getcwd()
并定义在开头添加 cwd
的所有路径,例如在我的例子中:
csv_data = cwd + '/folder-name-path/data/myData.csv'
json_data = cwd + '/folder-name-path/temp/myTemp.json'
我还在我的 lib
文件夹中添加了 __init__.py
,不确定是否有必要,但这有助于 python 了解此文件夹有脚本。
谢谢!!