加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

【Linux+Python】集群、ssh、python、import error

发布时间:2020-12-14 16:02:13 所属栏目:百科 来源:网络整理
导读:? 当你集齐这几个关键词时,你和我遇到了一样的问题。 linux装了ssh的集群中,如果单独在某个节点运行python文件,正常。但是一旦用这个命令 ?? ?for k in $(seq 1 10) ?? ?do ?? ??? ?ssh guest@node${k} "python hello.py" ?? ?done 批量运行时,发现反复

?

当你集齐这几个关键词时,你和我遇到了一样的问题。

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;">?

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读