【发布时间】:2021-05-06 04:25:08
【问题描述】:
我有一个 cronjob 来运行 Python 程序 test.py,并将其输出保存到 test.log。
sudo crontab -l 的输出:
* * * * * python3 /path/to/test.py/ >> /path/to/test.log 2>&1
test.py的内容:
import os
import datetime
NOW = datetime.datetime.now()
print(NOW)
print(os.environ['some_var_in_bashrc']) # export some_var_in_bashrc="99999"
~/.bashrc的内容:
...
export some_var_in_bashrc="99999"
从终端运行时,输出如预期...
$ python3 test.py
2021-02-01 15:49:02.165106
99999
当 cronjob 运行时,我在 test.log 中得到这个:
2021-02-01 15:49:01.341941
Traceback (most recent call last):
File "/path/to/test.py/", line 8, in <module>
print(os.environ['some_var_in_bashrc'])
File "/usr/lib/python3.6/os.py", line 669, in __getitem__
raise KeyError(key) from None
KeyError: 'some_var_in_bashrc'
为什么会这样?
我在 Ubuntu 18.04 上。
【问题讨论】:
-
是的,谢谢,我找了几天没找到。
标签: python linux cron environment-variables