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
.
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:
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'
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'
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.
conda
ou virtualenv
:Installation Python packages à partir d'un ordinateur portable Jupyter
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!
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.
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.