ModuleNotFoundError:没有名为“pandas”的模块(仅作为根用户)

ModuleNotFoundError:没有名为“pandas”的模块(仅作为根用户)

所以我遇到了这个奇怪的问题。

我刚刚安装了服务器 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 参考

希望有所帮助。

相关内容