我有一个查询数据库的python脚本。我使用python3 myscript.py
我在crontab文件中为它添加了一个cron任务
*/30 9-17 * * 1-5 python3 /path/to/my/python/script\ directory\ space/myscript.py
该脚本在同一目录中导入一个函数,该目录解析位于同一目录中database.ini中的数据库的登录信息。 database.ini是:
[postgresql]
host=my-db-host-1-link.11.thedatabase.com
database=dbname
user=username
password=password
port=10898
但目前cron输出到我的邮件文件夹中的文件:
Section postgresql not found in the database.ini file
该部分显然存在于database.ini文件中,所以我在这里缺少什么?
答案 0 :(得分:1)
而不是运行" python3 myscript.py"在它所在的目录中,尝试从其他目录(如主目录)运行它。很可能你会看到同样的问题。
请注意,cron的当前工作目录在不同系统上有所不同。因此,最安全的方法是显式切换到脚本所在的目录并在那里运行命令:
cd /path/to/my/python/script\ directory\ space/ && python3 myscript.py
答案 1 :(得分:1)
试试这个:
导入os
...
更改 - > filename = database.ini
for -------->文件名= os.path.dirname(__文件__)+ '/ database.ini'