ArchにPythonパッケージをインストールする推奨方法


37

ArchにPythonパッケージをインストールする推奨される方法は何ですか?AURでそれらを検索してそこからインストールする(またはPKGBUILD自分でパッケージを作成するためのファイルを作成する)か、使用しpipますか?

私はpacmanとAURからのものをインストールすることから始めましたが、pipパッケージと混ぜることが賢明かどうかわかりません。

回答:


34

すべてのユーザーにpythonパッケージが必要ない場合は、次のように自宅にインストールできます。

pip install --user packagename

自宅にインストールしても、パッケージマネージャーと競合することはありません。

デフォルトでpip install --userは、「ユーザーサイト」ディレクトリにインストールされます。通常、それは次のようなものです/home/lesmana/.local/lib/python3.6/site-packages

次のコマンドは、とりわけ「ユーザーサイト」の場所を印刷します。

python -m site

インストール場所をカスタマイズするには:

PYTHONUSERBASE=$HOME/some/dir pip install --user packagename

これにより、すべてがインストールされます $HOME/some/dir

走る:

PYTHONUSERBASE=$HOME/some/dir $HOME/some/dir/bin/progname

詳細については、pipのマニュアルを参照しください。


すべてのユーザーにpythonパッケージが必要な場合は、インストールするのが最適です/opt。たとえば次のように:

PYTHONUSERBASE=/opt/packagedir pip install packagename

(欠落していることに注意してください--user

上記のように実行します:

PYTHONUSERBASE=/opt/packagedir /opt/packagedir/bin/progname

背景説明:/optローカルユーザーまたはシステム管理者が自分のものをインストールできるディレクトリとして、gnu / linuxディストリビューションによって一般的に認められています。言い換えれば、ディストリビューションのパッケージマネージャーは、通常は触れません/opt。これは、ファイルシステム階層標準で多かれ少なかれ標準化されています

ユーザーの便宜を図るため、ラッパースクリプトを記述して、/binまたはに配置し/usr/binます。これには、依然として配布パッケージマネージャーと競合するリスクがありますが、少なくとも1つのラッパースクリプトファイルにすぎません。したがって、行われる可能性のある損傷は最小限です。ラッパースクリプトには、次のような名前を付けるlocal-foocustom-foo、配布パッケージマネージャーとの衝突のリスクをさらに最小限に抑えることができます。

または、ラッパースクリプトPATHを含め/opt/binて配置するように変更できます。ただし、これにPATHは、定義済みの(またはいくつかの)システムファイルを変更する必要があります。このファイルは、配布パッケージマネージャーによって上書きされる可能性があります。

つまり、すべてのユーザーにインストールする場合は、でインストールします/opt。ラッパースクリプトを配置する場所は、判断を促すためのものです。

/optファイルシステム階層標準に関する詳細情報:


私見、これは、virtualenvsをセットアップするためのポインターと一緒に、受け入れられる答えでなければなりません。
ttsiodras

1
あー 物事をピップpythonする前に私がこれを知っていた新しいと願っていsudioます。これをありがとう。
ヘンディ

すべてのユーザーにpythonパッケージ必要な場合はどうなりますか?
Mehrdad

@Mehrdadが回答を更新しました
レスマナ

@lesmana:ありがとう!しかし、それが推奨される方法だと確信していますか?Pythonに/ optを使用することを提案するのを聞いたのは初めてです...
Mehrdad

9

通常、ディストリビューションでは、ディストリビューションのパッケージマネージャーを使用することをお勧めします。もちろん、pip(または、perlの世界ではcpan)を使用してインストールするか、自分でコンパイルしてインストールすることができます。ただし、これを行うと、ディストリビューションのパッケージマネージャーはそれらを認識せず、依存関係またはそれらの更新を管理できません。

pipを使用することは、独自のパッケージをコンパイルしてインストールすることとほぼ同じです。必要に応じて実行しますが、ディストリビューションのパッケージマネージャーを使用します。


2
あなたは絶対に使用しないでくださいpip(経由少なくともグローバルsudoルートやなど) -私はかなりが得たsite-package/...とき、すでにエラーが存在するpacmanいくつかの依存関係をインストールしようとした
トビアスKienzler

私もそのようなエラーを受け取りました。すべてのpip3パッケージをアップグレードしましたが、pacmanは競合のためシステムのアップグレードを拒否しました。pip3とpacmanの両方でそのパッケージをアンインストールしてから、システムのアップグレードを行い、最後にパッケージをインストールし直しました(もちろんpacmanを使用)。
Al.G.

8

ArchLinuxの正しい方法

ArchLinuxにPYTHONパッケージをインストールする正しい方法は、PACMANを使用することです!Python3にパッケージをインストールするには、使用する必要があります

sudo pacman -S python-'package'

Python2からパッケージをインストールする場合は、使用する必要があります

sudo pacman -S python2-'package'

ほとんどのpythonパッケージはArchLinuxリポジトリにあり、AUR(ArchLinuxユーザーリポジトリ)にないパッケージ-これらのパッケージでは、PKGBUILDファイルをダウンロードしてコンパイルする必要があります。その後、PACMANを使用してインストールを完了する必要があります

makepkg -s
sudo pacman -U 'compiled-package'

ArchLinuxの2番目の正しい方法

パッケージがAURにない場合、またはPKGBUILDが機能しない場合、PIPを使用してPython3にインストールできます

sudo pip install 'python-package'

またはPython2

sudo pip2 install 'python-package'

あなたはチャンスを与えることができるvirtualenv、あるいはconda

Archでは、VirtualEnvironmentsも使用できます。これにより、コードに移植性がもたらされ、古いパッケージも維持されます。でインストールする

sudo pacman -S python-virtualenv

これを試して

virtualenv -p /usr/bin/python3 yourenv
source yourenv/bin/activate
pip install package-name

この環境を作成すると、システム全体ではなく、この環境のみにパッケージをインストールするyourenvようにセットアップさpipれます。

これらの他のリンクは、condaまたはを使用してLinuxでパッケージを管理する方法について詳しく知りたい場合に役立ちますvirtualenv

JupyterノートブックからPythonパッケージをインストールする

ArchLinuxでPythonをコーディングする

これらの規則に従えば、ArchLinuxは壊れず、PACMANとPIPの間に依存関係の問題はありません。

役に立てば幸いです!



1

ここの他の回答に加えて、python-virtualenvパッケージをチェックしてください。バージョン番号が一致しない、異なる依存関係を持つ複数のプロジェクトで開発を行う場合、非常に便利です。

https://wiki.archlinux.org/index.php/Python_VirtualEnv

また、pipとvirtualenvの2つのバリアントがあることに注意してください。1つはPython 2用、もう1つはPython 3用です。インストールが構文エラーで失敗した場合は、間違ったバージョンで試している可能性があります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.