私はnumpy
/scipy
/pynest
を使用して、Mac OS Xで研究コンピューティングを行っています。パフォーマンスのために、大学から400ノードのクラスター(Linuxを使用)を借りていますタスクを並行して実行できるようにします。問題は、クラスターに余分なパッケージをインストールできないことです(Sudo
またはインストールツールはありません)。それらはraw python自体のみを提供します。
クラスターでスクリプトを実行するにはどうすればよいですか?パッケージをインストールせずに解釈および実行できるように、モジュールを統合する方法はありますか(numpyとscipyにはコンパイル済みのバイナリもいくつかあります)?
パッケージをインストールするのにroot権限は必要ありませんホームディレクトリ内。次のようなコマンドでそれを行うことができます
pip install --user numpy
またはソースから
python setup.py install --user
https://stackoverflow.com/a/7143496/284795 を参照してください
最初の選択肢ははるかに便利なので、サーバーにpip
またはeasy_install
がない場合は、管理者に丁寧に追加してもらい、メリットを説明する必要があります(そうはなりません)個々のパッケージのリクエストに悩まされました)。
virtualenv パッケージを使用して仮想環境を作成できます。
これにより、Python実行可能ファイル)の新しいコピーと新しいsite-packages
ディレクトリを持つフォルダー(たとえばvenv
)が作成され、そこに任意の数のパッケージを「インストール」できますしたがって、source venv/bin/activate
を使用して環境をアクティブにすると、Pythonこれらのパッケージをインストールしたのと同等の環境になります。
これはSGEクラスターで機能しますが、仮想環境のアクティブ化方法はクラスターの構成によって異なる場合があります。
次の手順を使用して、独自のサイトパッケージディレクトリ内のクラスターにvirtualenv
をインストールしてみてください。
here からvirtualenvをダウンロードし、クラスターに配置します
setup.py
を使用して特定のローカルディレクトリにインストールし、独自のサイトパッケージとして機能させます。
python setup.py build
python setup.py install --install-base /path/to/local-site-packages
そのディレクトリをPYTHONPATHに追加します。
export PYTHONPATH="/path/to/local-site-packages:${PYTHONPATH}"
Virtualenvを作成します。
virtualenv venv
PythonディストリビューションAnacondaは、この質問で説明した問題の多くを解決します。Anacondaは、管理者またはルートアクセスを必要とせず、ホームディレクトリにインストールできます。 (scipy、numpy、sklearnなど)と、追加パッケージが必要な場合に追加パッケージをインストールするcondaインストーラー。
https://www.continuum.io/downloads からダウンロードできます
次を呼び出して、任意のパスからモジュールをインポートできます。
sys.path.append()