ルートアクセスなしでPythonモジュールをインストールする方法


220

私はいくつかの大学の授業を受けており、「説明用のアカウント」を与えられています。これは、sshを使用して作業を行うことができる学校のアカウントです。そのマシンで計算集中型のNumpy、matplotlib、scipyコードを実行したいのですが、システム管理者ではないため、これらのモジュールをインストールできません。

どうすればインストールできますか?


14
インストールするパッケージのsetup.pyに--userまたは--prefixを渡して、ローカルにインストールできます。Pythonモジュールの警告インストールを
arunkumar '19 / 09/19

回答:


306

ほとんどの場合、最善の解決策は、次のコマンドを実行して、いわゆる「ユーザーサイト」の場所(詳細は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が文句を言うでしょう-ところで、上記のコマンドを一度実行して、XYの正しい値を見つけます)。

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

pipを使用すると、以下を使用できます。

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

1
Pythonがなくpipeasy_install利用できない場合はどうなりますか?
ジラルディ2014

インストールは問題なく実行されましたが(pipメソッド)、package_nameのインポートは機能しません。一部の構成を変更/追加する必要がありますか?また、インストールはどこに(フォルダごとに)コピーされましたか?
idoda 2014

2
//、@ AnotherDayAnotherRob、それは良い質問のように聞こえます。
Nathan Basanese 16

2
答えを更新して、--user説明を一番上に置くことは意味があります。:)
VasiliNovikov

1
@Girardi srcからローカルディレクトリ/ my_python /にpythonをインストールした場合、最初にこの場所にpipをインストールすると便利です:wget --no-check-certificate bootstrap.pypa.io/get-pip.py -O-| / my_python / bin / python-次に、pip +プレフィックス付きの他のモジュールをインストールできます
teng_wenxuan

51

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

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

シェルで4つのコマンドを実行するだけで十分です(XXXには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/


1
この回答は、pipインストールされていないシステムで役に立ちました。
Dan Stowell、2013

私は私のローカルpythonインストールのバリアントを試してみました。curl --silent --show-error --retry 5 bootstrap.pypa.io/get-pip.py | 〜/ Python-2.7.8 / python
Neerav 2014

3
ソースが移動したようで、上記はそのままでは機能しません。同様の手順はhttps://virtualenv.pypa.io/en/latest/installation/正常に機能しますが:)
Andras Deak

13

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

これを行うには、ホームディレクトリに.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


1
これは私がLinuxサーバーにrootアクセスなしでインストールするのに役立ちました。ありがとうございますしかし、なぜうまくいったのか、私にはわかりません。どんな体がヒントを与えることができますか?
ChathuraG 2016

9

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の投稿で説明しています。


1
どうもありがとう。をlxml使用してライブラリを正常にインストールしましたpython <lxml_distrib_dir>/setup.py install --home=<dir>
Serge S.

6

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

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

  2. インストールされたpip

このような:

 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

4

私は、JuJuを使用します。これにより、$ HOME / .jujuディレクトリ内に非常に小さなLinuxディストリビューション(パッケージマネージャーのみを含む)を含めることができます。

これにより、prootを介してアクセスできるホームディレクトリ内にカスタムシステムを作成できるため、root権限なしでパッケージをインストールできます。すべての主要なLinuxディストリビューションで正常に動作します。唯一の制限は、JuJuが推奨される最小バージョン2.6.32のLinuxカーネルで実行できることです。

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

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


1

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

重要:XXXの現在のリリース(16.1.0など)を挿入します。 抽出したファイルの名前を確認し、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環境に必要なパッケージを使用またはインストールする前に:sourceenv

$ source env/bin/activate

新しいpythonパッケージ(numpyなど)をインストールするには、次のコマンドを使用します。

(env)$ pip install <package>

これは基本的に、トレメンドースの指示の更新バージョンです。彼の指示は時代遅れです。編集が拒否されました。そのため、新しい指示として投稿しました。
Niklas
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.