安装Numpy的变通方法?

2 投票
4 回答
721 浏览
提问于 2025-04-17 03:08

现在我有一个脚本,它使用了numpy库,我想在服务器上自动运行。当我通过ssh登录并手动运行它时,一切都很好。但是,当我把它设置为定时任务(cron job)时,它找不到numpy。显然是因为共享服务器的环境,定时任务的程序出于某种原因找不到numpy。我联系了服务器提供商的技术支持,他们告诉我让我自己设置一个虚拟专用服务器(VPS)或者干脆自己买台服务器。有没有什么办法可以绕过这个问题呢?比如,把某些numpy的文件移动到和脚本同一个目录里?

4 个回答

1

你的定时任务可能是用不同的Python解释器在运行。

你可以通过SSH登录到你的服务器,然后输入 which python。这个命令会告诉你Python的安装位置。接下来,让你的定时任务使用这个Python解释器来运行你的脚本,或者给你的脚本加上可执行权限(用 chmod +x),并在脚本顶部加上一个 #! 的路径行。

2

定时任务(cronjob)在一个空的环境中运行。这意味着它可能使用的不是你在命令行中使用的同一个Python程序,或者你设置的PYTHONPATH在定时任务中是没有的。

你可以运行 env -i HOME=$HOME sh 来模拟定时任务的环境。然后逐步设置环境变量,直到你的命令可以正常工作,并把这些变量记录下来。

接着,你可以在你的定时任务文件中设置这些变量,同样使用env命令,像这样:

* * * * * env PYTHONPATH=/my/pythonpath OTHERVAR=correct-value /path/to/mycommand
2

如果你的服务器上已经安装了numpy这个库,你可以把它添加到Python的导入路径中。在你脚本的开头,可以这样做:

import sys
sys.path.append("/path/to/numpy")
import numpy

撰写回答