我有一个使用Scientific Linux的计算群集的帐户。当然我只有用户访问权限。我正在使用python,我需要运行python脚本,所以我需要导入一些python模块。由于我没有root访问权限,因此我在$ HOME上安装了一个包含所有必需模块的本地python副本。当我在我的帐户(托管节点)上运行脚本时,它们正确运行。但是为了将作业提交到计算队列(在更快的机器上处理),我需要提交一个bash脚本,该脚本具有执行脚本的行。计算群集使用SunGrid Engine。但是,当我提交bash脚本时,出现错误,我找不到我安装的模块!
所以我对这个问题的理解是没有发送模块或者执行脚本的机器。我的问题是:是否可以在脚本中包含所有模块?
编辑:我刚创建了一个运行which python
的bash脚本,我注意到输出不是我的python副本。但是当我在我的ssh帐户上运行'which python'时,我正确地得到了我的python副本..
答案 0 :(得分:0)
提交的脚本很可能是使用系统Python安装而不是您自己的。尝试仅使用一个命令which python
提交shell脚本进行确认。
修复方法是将Python解释器的路径添加到系统路径中。在我的机器上,正确的Python安装在/Users/mbatchkarov/anaconda/bin/python
。我将export PATH="/Users/mbatchkarov/anaconda/bin:$PATH"
添加到~/.bash_profile
编辑将同一行添加到~/.bashrc
。