当你集齐这几个关键词时,你和我遇到了一样的问题。
linux装了ssh的集群中,如果单独在某个节点运行python文件,正常。但是一旦用这个命令
for k in $(seq 1 10)
do
ssh guest@node${k} "python hello.py"
done
批量运行时,发现反复报错:mpi import error,psutil import error等。
直接说原因:系统默认的python版本跟你用的不一样。
测试如下
(1)随便选个节点node 1,运行“which python”,“python -V”,均显示为python3
(2)运行如下命令时,均显示为python2。
for k in $(seq 1 10)
do
ssh guest@node${k} "which python && python -V"
done
解释:上述代码的意思是,查看集群中每个节点的python版本。
居然出现两个默认版本,醉了。
解决:批量修改默认python版本为python3.
step 1: 进入root
step 2:建立一个test.sh文件,写上如下命令
<pre class="has">
for k in $(seq 1 10)
do
ssh node${k} "cd /usr/bin && rm -rf python && ln -s /home/anaconda3/bin/python /usr/bin/python"
done
注意我安装的是anaconda3中的python3,所以路径是在anaconda3下。改成你自己的路径。
step 3:运行这个脚本,修改所有机器的默认路径:sh test.sh
问题解决。
=============================================
注释:
<p style="margin-left:0in;">ll /usr/bin/python 查看默认python版本的路径
<p style="margin-left:0in;">cd /usr/bin && rm -rf python 删除该默认路径的link
<p style="margin-left:0in;">which python:当前所用的python的安装路径
<p style="margin-left:0in;">python -V:当前所用的python版本
<p style="margin-left:0in;">
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。