我有一個使用Scientific Linux的計算羣集的帳戶。當然,我只有用戶訪問權限。我正在使用python,我需要運行python腳本,所以我需要導入一些python模塊。由於我沒有root訪問權限,我在我的$ HOME上安裝了一個本地python副本以及所有必需的模塊。當我在我的帳戶(託管節點)上運行腳本時,它們運行正常。但爲了將作業提交到計算隊列(在更快的機器上處理),我需要提交一個包含執行腳本的行的bash腳本。計算羣集使用SunGrid引擎。但是,當我提交bash腳本時,出現錯誤,我找不到安裝的模塊!我無法弄清楚什麼是錯的。我希望你能幫忙。通過計算羣集加載python模塊
回答
首先,該解決方案是否適用於您取決於羣集的設置方式。這就是說,你的問題的一般解決方案如下。如果計算集羣可以像訪問主目錄一樣訪問相同的文件,我沒有看到爲什麼這種方式無效。
您需要使用virtualenv。在你的virtualenv中安裝你的軟件以及你需要的任何額外的python軟件包。然後在批量bash腳本中,提供該virtualenv內的python解釋器的完整路徑。
注意:要在virtualenv中安裝python軟件包,您需要使用virtualenv中的pip實例,而不是系統pip。
例子:
$ virtualenv foo
$ cd foo
$ ./bin/pip install numpy
在bash腳本然後:
/path/to/foo/bin/python /path/to/your/script.py
我剛剛創建了一個運行'哪個python'的bash腳本,我注意到輸出不是我的python副本。但是當我在我的ssh帳戶上運行「哪個python」時,我得到了我的副本。 –
嘗試執行我建議的操作 - 您將提供您自己的python副本以供羣集運行。嚴肅地說,就是和運行集羣的人交談。我可以清楚地不知道他們是如何設置的,顯然你也不知道。與他們交談將成爲您解決問題的最快途徑。 – EEAA
你可以簡單地從bash腳本的東西,如打電話給你的Python程序:PYTHONPATH=$HOME/lib/python /path/to/my/python my_python_script
我不瞭解SunGrid的工作原理,但如果它使用的用戶不是您的用戶,則需要對您的$HOME
進行全局讀取。或者至少到Python庫。
- 1. 通過計算集羣加載python模塊
- 2. Python:通過名稱加載模塊
- 3. 集羣計算
- 4. 通過GDB加載模塊
- 5. 計算機集羣中的python庫
- 6. Node.js集羣模塊
- 7. 使用多處理模塊進行集羣計算
- 8. 計算通過jquery加載的值
- 9. SQL集團通過計算
- 10. Apache Ignite計算羣集
- 11. F#+ MPI + MONO:集羣計算
- 12. OpenLayers羣集重新計算
- 13. 通過Python連接到Cloudera集羣
- 14. 通過JSPM加載(自定義)模塊
- 15. Karma如何通過id加載模塊?
- 16. 通過requirejs自動加載模塊
- 17. 通過.NET代碼加載Powershell模塊
- 18. 通過SOM集羣
- 19. 共享與羣集模塊
- 20. 模塊集羣和JMS
- 21. Node.js - 核心羣集模塊
- 22. 重裝Python模塊時,其通過加載「從pymod進口*」
- 23. 通過systemd運行Python腳本無法加載模塊
- 24. 在哈希集中計算集羣
- 25. 無法加載Python模塊
- 26. 重新加載Python模塊
- 27. 動態加載python模塊
- 28. 通過碼頭羣組模式部署火花羣集
- 29. 集羣系統上的Java並行處理(集羣計算)
- 30. 所有羣集計算庫是否與星羣集兼容?
順便說一句 - 這是一個軟件開發問題,而不是系統管理問題。因此,我已投票將此遷移到StackOverflow。另外,如果您對如何在集羣上運行事情有疑問,那麼詢問運行集羣的人員似乎是合適的。 – EEAA