web-dev-qa-db-fra.com

Manière recommandée d'installer python paquets sur arcade

Quelle est la manière recommandée d'installer python packages sur arc? Les rechercher sur l'AUR et les installer à partir de là (ou créez un fichier PKGBUILD pour créer vous-même un emballage) ou utiliser pip?

J'ai commencé par installer des trucs de Pacman et de l'Aur et je ne sais pas s'il serait sage de mélanger avec des packages pip.

38
Nils Werner

Si vous n'avez pas besoin de python packages pour tous les utilisateurs, vous pouvez les installer dans votre maison comme ceci:

pip install --user packagename

L'installation dans votre maison ne sera pas en conflit avec le gestionnaire de paquets.

Par défaut pip install --user va installer dans votre répertoire "Site utilisateur". Habituellement, c'est quelque chose comme: /home/lesmana/.local/lib/python3.6/site-packages.

La commande suivante imprimera, entre autres, votre emplacement "Site utilisateur":

python -m site

Pour personnaliser l'emplacement d'installation:

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

cela installera tout sous $HOME/some/dir

courir:

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

Voir le manuel PIP pour plus d'informations.


si vous voulez le python package pour tous les utilisateurs, le meilleur endroit pour l'installer est /opt. Par exemple comme celui-ci:

PYTHONUSERBASE=/opt/packagedir pip install packagename

(Notez le _ manquant --user)

et courir, comme ci-dessus:

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

Explication de fond: /opt est couramment reconnu par les distributions GNU/Linux en tant que répertoire où l'utilisateur local ou l'administrateur système peut installer ses propres éléments. En d'autres termes: le gestionnaire de packages des distributions ne touche généralement pas /opt. Ceci est plus ou moins standardisé dans la norme Standard de la hiérarchie des systèmes de fichiers

Pour le confort des utilisateurs, vous voudrez toujours écrire un script wrapper et le placer dans /bin ou /usr/bin. Cela porte toujours un risque de collision avec le gestionnaire de packages de distribution, mais au moins il ne s'agit que d'un fichier de script wrapper. Donc, les dommages pouvant être faits sont minimes. Vous pouvez nommer le script wrapper quelque chose comme local-foo ou custom-foo Pour minimiser davantage le risque de collision avec le gestionnaire de paquets de distribution.

Sinon, vous pouvez modifier PATH pour inclure /opt/bin et placez votre script wrapper là-bas. Mais cela vous demande à nouveau de modifier un (ou certains) fichiers système où PATH est défini à nouveau remplaçant par le gestionnaire de packages de distribution.

En bref: si vous souhaitez installer pour tous les utilisateurs, alors faites-le dans /opt. Où vous placez le script wrapper pour le confort est un appel de jugement.

Plus d'informations sur /opt et hiérarchie du système de fichiers standard:

34
lesmana

La bonne façon pour Archlinux

La bonne façon d'installer PYTHON packages à Archlinux utilise Pacman! Pour installer des packages à Python3, vous devez utiliser

Sudo pacman -S python-'package'

Si vous souhaitez installer des packages de Python2, vous devez utiliser

Sudo pacman -S python2-'package'

La plupart python Les colis sont dans les référentiels d'Archlinux et les packages qui ne sont pas dans Aur (Archlinux de référentiels) - pour ces forfaits, vous devez télécharger le fichier pkgbuild et compiler. Après cela, vous avez utiliser Pacman pour terminer l'installation

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

La deuxième bonne voie pour Archlinux

Lorsque le colis n'est pas dans l'AUR ou le pkgbuild ne fonctionne pas, vous pouvez utiliser PIP pour l'installer à Python3.

Sudo pip install 'python-package'

ou python2

Sudo pip2 install 'python-package'

Vous pouvez donner une chance à virtualenv ou même conda

Sur la voûte, vous pouvez également utiliser Virtualenvironments. Cela peut apporter une portabilité à votre code et maintenir également d'anciens forfaits. L'installer avec

Sudo pacman -S python-virtualenv

et essayez ceci

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

Lorsque vous créez cet environnement yourenv, vous serez configuré pip pour installer des packages uniquement dans cet environnement et non sur l'ensemble du système.

Ces autres liens peuvent être utiles avec vous souhaitez en savoir plus sur la gestion des packages sur Linux avec conda ou virtualenv:

Installation Python packages à partir d'un ordinateur portable Jupyter

code Python sur Archlinux

Si vous suivez ces règles, votre Archlinux ne se cassera pas et n'aura pas de problèmes de dépendance entre Pacman et PIP.

J'espère que c'est utile!

11

Typiquement, dans une distribution, il est recommandé d'utiliser le gestionnaire de paquets de la distribution. Vous pouvez bien sûr installer des choses en utilisant PIP (ou, dans le monde Perl, CPAN) ou compiler et installer des choses vous-même. Cependant, lorsque vous faites cela, le gestionnaire de paquets de la distribution ne le sait pas et ne peut pas gérer les dépendances ni les mises à jour.

L'utilisation de PIP est assez équivalente à la compilation et à l'installation de votre propre package. Faites-le si vous en avez besoin, mais préférez le gestionnaire de paquets de la distribution.

9
Falcon Momot

Pour certains forfaits (ceux que je ne souhaite probablement pas pirater), je fais mon propre paquet en utilisant ceci:

https://github.com/bluepeppers/pip2arch

ensuite, construisez et installez le pkgbuild produit.

Je laisse Virtualenvs pour des packages que je voudrais vouloir modifier ou pirater.

6
rmorgans