【Linux+Python】叢集、ssh、python、import error
當你集齊這幾個關鍵詞時,你和我遇到了一樣的問題。
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檔案,寫上如下命令
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
問題解決。
=============================================
註釋:
ll /usr/bin/python 檢視預設python版本的路徑
cd /usr/bin && rm -rf python 刪除該預設路徑的link
which python:當前所用的python的安裝路徑
python -V:當前所用的python版本
相關文章
- 解決python MySQLdb import Error問題PythonMySqlImportError
- Import Error: cannot import name ‘export_saved_modelImportErrorExport
- Hadoop叢集機器的SSH認證配置Hadoop
- 大資料叢集搭建(1)ubuntu、jdk、ssh搭建配置大資料UbuntuJDK
- Python 非同步叢集使用Python非同步
- 1nd round export and import errorExportImportError
- python importPythonImport
- 【Redis】用python操作redis叢集RedisPython
- Python測試Kafka叢集(pykafka)PythonKafka
- 搭建zookeeper叢集(偽叢集)
- web叢集與ejb叢集Web
- Python測試Kafka叢集(kafka-python)PythonKafka
- Hadoop叢集(第5期副刊)_JDK和SSH無密碼配置HadoopJDK密碼
- zookeeper叢集及kafka叢集搭建Kafka
- Python import相關內容區別介紹( import *** as 、from***import )PythonImport
- redis偽叢集配置Cluster叢集模式Redis模式
- Redis系列:搭建Redis叢集(叢集模式)Redis模式
- Redis叢集 - cluster叢集、資料分片Redis
- Export and import right application or execute import imp-00010 error solveExportImportAPPError
- linux下搭建ZooKeeper叢集(偽叢集)Linux
- Zookeeper叢集 + Kafka叢集 + KafkaOffsetMonitor 監控薦Kafka
- mongodb副本叢集和分片叢集佈署MongoDB
- EJB叢集和Webservice叢集的討論Web
- python基礎--自定義模組、import、from......import......PythonImport
- 徹底搞懂Python 中的 import 與 from importPythonImport
- RabbitMQ叢集MQ
- redis 叢集Redis
- 叢集搭建
- SolrCloud叢集SolrCloud
- redis叢集Redis
- Python使用 Kubernetes API 訪問叢集PythonAPI
- 將Standard標準叢集修改為Flex叢集Flex
- 基於Dokcer搭建Redis叢集(主從叢集)Redis
- MySQL5.7叢集(MGR)啟動報ERROR 3092 (HY000)MySqlError
- Spring quartz 叢集模式下trigger_state error問題原因Springquartz模式Error
- import reload __import__在python中的區別ImportPython
- Python Package Import 之痛PythonPackageImport
- Python __import__() 函式PythonImport函式