回答:
すべてのユーザーに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-fooかcustom-foo、配布パッケージマネージャーとの衝突のリスクをさらに最小限に抑えることができます。
または、ラッパースクリプトPATHを含め/opt/binて配置するように変更できます。ただし、これにPATHは、定義済みの(またはいくつかの)システムファイルを変更する必要があります。このファイルは、配布パッケージマネージャーによって上書きされる可能性があります。
つまり、すべてのユーザーにインストールする場合は、でインストールします/opt。ラッパースクリプトを配置する場所は、判断を促すためのものです。
/optファイルシステム階層標準に関する詳細情報:
pythonする前に私がこれを知っていた新しいと願っていsudioます。これをありがとう。
通常、ディストリビューションでは、ディストリビューションのパッケージマネージャーを使用することをお勧めします。もちろん、pip(または、perlの世界ではcpan)を使用してインストールするか、自分でコンパイルしてインストールすることができます。ただし、これを行うと、ディストリビューションのパッケージマネージャーはそれらを認識せず、依存関係またはそれらの更新を管理できません。
pipを使用することは、独自のパッケージをコンパイルしてインストールすることとほぼ同じです。必要に応じて実行しますが、ディストリビューションのパッケージマネージャーを使用します。
pip(経由少なくともグローバルsudoルートやなど) -私はかなりが得たsite-package/...とき、すでにエラーが存在するpacmanいくつかの依存関係をインストールしようとした
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'
パッケージがAURにない場合、またはPKGBUILDが機能しない場合、PIPを使用してPython3にインストールできます
sudo pip install 'python-package'
またはPython2
sudo pip2 install 'python-package'
virtualenv、あるいはcondaArchでは、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は壊れず、PACMANとPIPの間に依存関係の問題はありません。
役に立てば幸いです!
特定のパッケージ(おそらくハックしたくないパッケージ)については、これを使用して独自のパッケージを作成します。
https://github.com/bluepeppers/pip2arch
次に、作成されたPKGBUILDをビルドしてインストールします。
変更またはハッキングしたいパッケージのvirtualenvを残します。
ここの他の回答に加えて、python-virtualenvパッケージをチェックしてください。バージョン番号が一致しない、異なる依存関係を持つ複数のプロジェクトで開発を行う場合、非常に便利です。
https://wiki.archlinux.org/index.php/Python_VirtualEnv
また、pipとvirtualenvの2つのバリアントがあることに注意してください。1つはPython 2用、もう1つはPython 3用です。インストールが構文エラーで失敗した場合は、間違ったバージョンで試している可能性があります。