pythonパッケージをArchにインストールする推奨方法は何ですか?AURでパッケージを検索してそこからインストールする(またはPKGBUILD
ファイルを作成して自分でパッケージを作成する)またはpip
?
私はpacmanとAURからのものをインストールすることから始めましたが、pip
パッケージと混合するのが賢明かどうかはわかりません。
すべてのユーザーに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
およびファイルシステム階層標準に関する詳細情報:
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'
パッケージが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からのパッケージ
これらのルールに従えば、ArchLinuxは機能しなくなり、PACMANとPIP間の依存関係の問題は発生しません。
お役に立てれば幸いです。
通常、ディストリビューションでは、ディストリビューションのパッケージマネージャーを使用することをお勧めします。もちろん、pip(またはPerlの世界ではcpan)を使用してインストールすることも、自分でコンパイルしてインストールすることもできます。ただし、これを行うと、ディストリビューションのパッケージマネージャーはそれらを認識せず、依存関係や更新を管理できなくなります。
Pipを使用することは、独自のパッケージをコンパイルしてインストールすることとほぼ同じです。必要であればそれを行いますが、ディストリビューションのパッケージマネージャーを優先します。
特定のパッケージ(おそらくハッキングしたくないパッケージ)については、これを使用して独自のパッケージを作成します。
https://github.com/bluepeppers/pip2Arch
次に、生成されたPKGBUILDをビルドしてインストールします。
私は変更したい、またはハッキングしたいかもしれないパッケージのvirtualenvsを残します。
ここでの他の回答に加えて、python-virtualenv
パッケージ。バージョン番号が一致しない、依存関係が異なる複数のプロジェクトで開発を行っている場合は、非常に便利です。
https://wiki.archlinux.org/index.php/Python_VirtualEnv
また、pipとvirtualenvには2つのバリアントがあることに注意してください。 1つはPython 2用、もう1つはPython 3用です。3。構文エラーでインストールが失敗する場合は、間違ったバージョンを使用している可能性があります。