web-dev-qa-db-ja.com

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

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

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

38
Nils Werner

すべてのユーザーに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に触れません。これは Filesystem Hierarchy Standard で多かれ少なかれ標準化されています

ユーザーが快適に使用できるように、ラッパースクリプトを作成して/binまたは/usr/binに配置することもできます。これはまだ配布パッケージマネージャーと衝突するリスクを負いますが、少なくとも1つのラッパースクリプトファイルです。したがって、行われる可能性のある損傷は最小限です。ラッパースクリプトにlocal-fooまたはcustom-fooのような名前を付けると、配布パッケージマネージャーとの衝突のリスクをさらに最小限に抑えることができます。

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

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

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

34
lesmana

ArchLinuxの正しい方法

PYTHONパッケージをArchLinuxにインストールする正しい方法は、PACMANを使用しています!パッケージをPython3にインストールするには、

Sudo pacman -S python-'package'

Python2からパッケージをインストールする場合は、

Sudo pacman -S python2-'package'

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

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またはvirtualenvを使用してLinuxでパッケージを管理する方法について詳しく知りたい場合に役立ちます。

インストールPython Jupyter Notebookからのパッケージ

コードPython

これらのルールに従えば、ArchLinuxは機能しなくなり、PACMANとPIP間の依存関係の問題は発生しません。

お役に立てれば幸いです。

11

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

Pipを使用することは、独自のパッケージをコンパイルしてインストールすることとほぼ同じです。必要であればそれを行いますが、ディストリビューションのパッケージマネージャーを優先します。

9
Falcon Momot

特定のパッケージ(おそらくハッキングしたくないパッケージ)については、これを使用して独自のパッケージを作成します。

https://github.com/bluepeppers/pip2Arch

次に、生成されたPKGBUILDをビルドしてインストールします。

私は変更したい、またはハッキングしたいかもしれないパッケージのvirtualenvsを残します。

6
rmorgans

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

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

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

1
bobbaluba