web-dev-qa-db-ja.com

ルート権限なしでpythonパッケージをインストールする方法?

私はnumpy/scipy/pynestを使用して、Mac OS Xで研究コンピューティングを行っています。パフォーマンスのために、大学から400ノードのクラスター(Linuxを使用)を借りていますタスクを並行して実行できるようにします。問題は、クラスターに余分なパッケージをインストールできないことです(Sudoまたはインストールツールはありません)。それらはraw python自体のみを提供します。

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

32
Skyler

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

pip install --user numpy

またはソースから

python setup.py install --user

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


最初の選択肢ははるかに便利なので、サーバーにpipまたはeasy_installがない場合は、管理者に丁寧に追加してもらい、メリットを説明する必要があります(そうはなりません)個々のパッケージのリクエストに悩まされました)。

41
Colonel Panic

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

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

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

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

  1. here から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
    
11
David Robinson

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

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

1
Brian Cain

次を呼び出して、任意のパスからモジュールをインポートできます。

sys.path.append()

1
john graham