我希望在集羣計算系統上運行我的Python程序。由於我在羣集的每個節點上都沒有root訪問權限,因此我需要將Python和我的模塊安裝在本地目錄中並從那裏運行我的代碼。爲了節省時間,我可以在其中一個節點上執行本地Python構建,將其tar,並將tar tar保存在代理服務器上。然後,當我想在其餘的節點上運行我的代碼時,我只需將焦油Python解壓縮,然後運行我的程序。所以基本上我只需要構建一次Python,然後可以在集羣上重複使用它;我在羣集上運行的代碼如下所示:在集羣上使用Python,Cython和GSL
#!/bin/bash
wget www.proxyserver.Local_Python_Build.tgz
tar xzf Local_Python_Build.tgz
./Local_Python_Build/bin/python my_python_code.py
我遇到了一個主要問題。首先,我的主代碼使用我寫的一些需要GSL的Cython程序。當我進行Python的初始安裝時,我也做了GSL的本地構建,以及編譯Cython代碼(所有代碼都包含在tar中)。我已經檢查過,確保在構建它之後所有東西都能正確運行,但是一旦我在集羣上提交它,代碼就無法工作。我不斷收到以下錯誤:
ImportError: libgsl.so.0: cannot open shared object file: No such file or directory
現在,我已經嘗試添加到的路徑libgsl.so.0位於LD_LIBRARY_PATH目錄,但不工作;即
export LD_LIBRARY_PATH=path/where/libgsl/is
我擔心每次運行我的代碼時都需要構建GSL;即運行下面的代碼:
#!/bin/bash
wget www.proxyserver.Local_Python_Build.tgz
tar xzf Local_Python_Build.tgz
install GSL
Compile Cython Code
./Local_Python_Build/bin/python my_python_code.py
這顯然會增加我的運行時間,這我希望避免的。任何想法?計算羣集運行Linux。
謝謝!
什麼樣的集羣?查看是否安裝了virtualenv。它可能允許您在其中安裝所需的工具。 – Aditya
它是一個Linux集羣。節點非常精簡,我很確定virtualenv沒有安裝。但是我可以檢查一下.v一些額外的信息:集羣上有許多不同的Linux發行版,程序在某些版本(例如RHEL 6.6)上運行良好,但在其他版本(RHEL 6.4)上運行得很好。 – shadowprice
您在RHEL 6.4上遇到什麼錯誤? – rth