所以我遇到了这个奇怪的问题。
我刚刚安装了服务器 18.04.1 LTS。该服务器的目的是运行预定的 Python 脚本。
使用安装期间创建的用户帐户进行身份验证后,我可以顺利运行脚本。但使用 CRON(sudo crontab -e)安排时,它不会运行。
所以...我设置了 root 密码,进行了身份验证并尝试运行脚本,并收到错误“ModuleNotFoundError:没有名为‘pandas’的模块”。所以...我安装了 pandas(sudo apt-get install python-pandas)并重新运行。同样的错误
答案1
无论您的目的是什么,不使用 root 在您的服务器上运行任何脚本可能是一个更安全的选择。
(我实际上不知道使用 root 运行 cron 脚本是否会产生漏洞,但我想安全总比后悔好)。
考虑到这一点,我认为你可以通过以下方式解决这个问题
1)在 cron.allow 文件中为您的用户(成功运行脚本的用户)设置权限:
通常在路径中
/usr/lib/cron/cron.allow
,只需在单独的行中添加用户名。
或者
2)为脚本设置自定义环境:
HOME=user-home-directory
LOGNAME=user-login-id
PATH=/usr/bin:/usr/sbin:.
SHELL=/usr/bin/sh
PYTHONPATH=/usr/lib/pythonX.X
如需了解更多详细信息,请查看crontrab 参考。
希望有所帮助。