32

私は//を使用numpyし てMacOSXでいくつかのリサーチコンピューティングを行っています。パフォーマンスのために、タスクを並行して実行できるように、大学から400ノードのクラスター(Linuxを使用)を借りていますscipypynest問題は、クラスターに追加のパッケージをインストールすることは許可されておらず(インストールツールがないsudoか、インストールツールがない)、生のPython自体のみを提供することです。

次に、クラスターでスクリプトを実行するにはどうすればよいですか?モジュールを統合して(numpyとscipyにもコンパイル済みのバイナリがいくつかあると思います)、パッケージをインストールせずに解釈して実行できるようにする方法はありますか?

4

4 に答える 4

43

ホームディレクトリにパッケージをインストールするには、root権限は必要ありません。次のようなコマンドでそれを行うことができます

pip install --user numpy

またはソースから

python setup.py install --user

https://stackoverflow.com/a/7143496/284795を参照してください


最初の選択肢の方がはるかに便利なので、サーバーにまたはがない場合はpipeasy_install管理者にそれを追加するよう丁寧に依頼し、利点を説明する必要があります(個々のパッケージの要求に煩わされることはありません)。

于 2013-01-06T14:39:32.653 に答える
12

virtualenvパッケージを使用して仮想環境を作成できます。

venvこれにより、Python実行可能ファイルの新しいコピーと新しいディレクトリを含むフォルダ(たとえば)が作成site-packagesされます。このフォルダに、管理アクセスをまったく必要とせずに、任意の数のパッケージを「インストール」できます。したがって、を介して環境をアクティブ化するsource venv/bin/activateと、Pythonにそれらのパッケージをインストールするのと同等の環境が提供されます。

これはSGEクラスターで機能することはわかっていますが、仮想環境をアクティブ化する方法はクラスターの構成によって異なる場合があります。

virtualenv次の手順を使用して、独自のsite-packagesディレクトリ内のクラスタにインストールしてみてください。

  1. ここからvirtualenvをダウンロードし、クラスターに配置します

  2. を使用して特定のローカルディレクトリにインストールしsetup.py、独自のサイトパッケージとして機能させます。

    python setup.py build
    python setup.py install --install-base /path/to/local-site-packages
    
  3. そのディレクトリをPYTHONPATHに追加します。

    export PYTHONPATH="/path/to/local-site-packages:${PYTHONPATH}"
    
  4. virtualenvを作成します。

    virtualenv venv
    
于 2013-01-06T06:39:11.097 に答える
1

次を呼び出すことにより、任意のパスからモジュールをインポートできます。

sys.path.append()

于 2014-01-13T04:46:25.913 に答える
1

PythonディストリビューションAnacondaは、この質問で説明されている問題の多くを解決します。Anacondaは管理者またはrootアクセスを必要とせず、ホームディレクトリにインストールできます。Anacondaには、問題のパッケージの多く(scipy、numpy、sklearnなど)と、追加のパッケージが必要な場合に追加のパッケージをインストールするためのcondaインストーラーが付属しています。

https://www.continuum.io/downloadsからダウンロードできます。

于 2015-12-02T02:46:15.063 に答える