web-dev-qa-db-ja.com

rootアクセスなしでpythonモジュールをインストールするにはどうすればいいですか?

私はいくつかの大学の授業を受けていて、私が仕事をするためにsshに入ることができる学校のアカウントである「指導アカウント」を与えられました。私は計算集約的なNumpy、matplotlib、scipyコードをそのマシン上で実行したいのですが、システム管理者ではないのでこれらのモジュールをインストールすることはできません。

どうやってインストールできますか?

207
Rishi

ほとんどの場合、最善の解決策は、次のコマンドを実行して、いわゆる "ユーザーサイト"の場所(詳細については PEP を参照)に頼ることです。

pip install --user package_name

以下は私の最初の答えからのより「手動の」方法です、上記の解決策があなたのために働くならば、あなたはそれを読む必要はありません。


Easy_installを使えば、次のことができます。

easy_install --prefix=$HOME/local package_name

これはにインストールされます

$HOME/local/lib/pythonX.Y/site-packages

(「ローカル」フォルダは、多くの人が使用する一般的な名前ですが、もちろん書き込み権限のあるフォルダを指定することもできます)。

手動で作成する必要があります

$HOME/local/lib/pythonX.Y/site-packages

そしてそれをあなたのPYTHONPATH環境変数に追加してください(そうでなければeasy_installは文句を言うでしょう - しかしX.Yの正しい値を見つけるために一度上記のコマンドを実行します)。

easy_installを使用していない場合は、プレフィックスオプションを探します。ほとんどのインストールスクリプトでは、それを指定できます。

Pipを使えば、次のことができます。

pip install --install-option="--prefix=$HOME/local" package_name
282
tiho

easy_installにアクセスしたりインストールしたりする権限はありません

それから、python virtualenvhttps://pypi.python.org/pypi/virtualenv )を作成して、この仮想環境からパッケージをインストールすることができます。

シェルで4つのコマンドを実行すれば十分です(X.X.Xの16.1.0のような現在のリリースを挿入します)。

$ curl --location --output virtualenv-X.X.X.tar.gz https://github.com/pypa/virtualenv/tarball/X.X.X
$ tar xvfz virtualenv-X.X.X.tar.gz
$ python pypa-virtualenv-YYYYYY/src/virtualenv.py my_new_env
$ . my_new_env/bin/activate
(my_new_env)$ pip install package_name

情報源およびより多くの情報: https://virtualenv.pypa.io/en/latest/installation/

48
tremendows

Rootアクセスがなくてもeasy_installを実行してあなたのホームディレクトリにpythonパッケージをインストールすることができます。 site.USER_BASEを使用してこれを行う標準的な方法があります。デフォルトは$ HOME/.localまたは$ HOME/Library/Python/2.7/binのようなもので、デフォルトでPYTHONPATHに含まれています。

これを行うには、ホームディレクトリに.pydistutils.cfgを作成します。

cat > $HOME/.pydistutils.cfg <<EOF
[install]
user=1
EOF

これで、root権限なしでeasy_installを実行することができます。

easy_install boto

あるいは、これによりrootアクセスなしでpipを実行することもできます。

pip install boto

これは私のために働きます。

Wesley Tanakaのブログからのソース: http://wtanaka.com/node/8095

12
yusong

あなたがdistutils setup.pyスクリプトを使わなければならないならば、インストール先を強制するためのいくつかのコマンドラインオプションがあります。 http://docs.python.org/install/index.html#alternate-installation を参照してください。この問題が繰り返される場合は、distutils設定ファイルを設定できます。 http://docs.python.org/install/index.html#inst-config-files を参照してください。

PYTHONPATH変数の設定はtihos postに記載されています。

9
rocksportrocker

重要な質問です。私が使っているサーバー(Ubuntu 12.04)はeasy_install3を持っていましたが、pip3は持っていませんでした。これで、Pipをインストールしてから他のパッケージをホームフォルダにインストールしました。

  1. 管理者にUbuntuパッケージのインストールを依頼しましたpython3-setuptools

  2. 取り付けられたピップ

このような:

 easy_install3 --prefix=$HOME/.local pip
 mkdir -p $HOME/.local/lib/python3.2/site-packages
 easy_install3 --prefix=$HOME/.local pip
  1. Pip(および他のPythonアプリケーションをパスに追加)

このような:

PATH="$HOME/.local/bin:$PATH"
echo PATH="$HOME/.local/bin:$PATH" > $HOME/.profile
  1. Pythonパッケージをインストールする

このような

pip3 install --user httpie

# test httpie package
http httpbin.org
6
Colonel Panic

私は JuJ を使っています。これは基本的にあなたの$ HOME/.jujuディレクトリの中に本当に小さいLinuxディストリビューション(ちょうどパッケージマネージャを含む)を持つことを可能にします。

ホームディレクトリ内のカスタムシステムをproot経由でアクセスできるようにすることで、root権限なしで任意のパッケージをインストールできます。これはすべての主要なLinuxディストリビューションに対して適切に動作しますが、唯一の制限はJuJuが最小の推奨バージョン2.6.32でLinuxカーネル上で動作できることです。

たとえば、JuJuをインストールしてpipをインストールするには、次のように入力します。

$>juju -f
(juju)$> pacman -S python-pip
(juju)> pip
4
user967489

最も簡単で簡単な方法は、次のコマンドです。

pip install --user package_name

http://www.lleess.com/2013/05/how-to-install-python-modules-without.html#.WQrgubyGOnc

2
user3108764

virtualenvをローカルにインストールします( 指示のソース ):

重要:X.X.Xに現在のリリースを(16.1.のように)挿入してください。
解凍したファイルの名前を確認して、YYYYYに挿入します。

$ curl -L -o virtualenv.tar.gz https://github.com/pypa/virtualenv/tarball/X.X.X
$ tar xfz virtualenv.tar.gz
$ python pypa-virtualenv-YYYYY/src/virtualenv.py env

あなたがまたはインストールすることができる前にあなたの仮想Python環境をsourceする必要があるenv

$ source env/bin/activate

新しいpythonパッケージをインストールするには(numpyのように)、

(env)$ pip install <package>
1
Niklas