47 votes

Quelle est la meilleure façon d'installer les paquets Python ?

Quelle est la meilleure façon d'installer les paquets Python dans Ubuntu 11 ? Je suis un récent converti à Ubuntu et je veux apprendre les meilleures pratiques.

Par exemple, je cherche à installer le paquet tweeststream, mais je ne l'ai pas vu dans mon gestionnaire de paquets Synaptic. Par ailleurs, je suis très novice en matière de programmation, mais j'ai l'habitude de suivre des exemples de code.

47voto

Mark Mikofski Points 1100

mis à jour : 2019-05-11 : Ce billet mentionne principalement virtualenv mais, selon l'Agence européenne pour la sécurité et la santé au travail (ESA), le Documentation Python sur l'installation des modules Depuis Python 3.5 "l'utilisation de venv est désormais recommandé pour la création d'environnements virtuels", tandis que virtualenv est une alternative pour les versions de Python antérieures à 3.4.

mis à jour : 2018-08-17 : depuis conda-4.4.0 utiliser conda à activate anaconda sur toutes les plateformes

mis à jour : 2017-03-27 : PEP 513 - manylinux binaires pour PyPI

mis à jour : 2016-08-19 : Option Continuum Anaconda

Il s'agit en quelque sorte d'un doublon de easy_install/pip ou apt-get .

Pour mondial Pour les paquets Python, utilisez le Centre de logiciels Ubuntu, apt, apt-get ou synaptic.

Ubuntu utilise Python pour de nombreuses fonctions importantes, c'est pourquoi interférer avec Python peut corrompre votre système d'exploitation. C'est la principale raison pour laquelle je n'utilise jamais pip sur mon système Ubuntu, mais j'utilise plutôt le Centre de logiciels Ubuntu, synaptique , apt-get ou le plus récent apt qui installent tous par défaut des paquets provenant de la base de données Dépôt Ubuntu . Ces paquets sont testés, généralement précompilés pour une installation plus rapide et conçus pour Ubuntu. En outre, toutes les dépendances nécessaires sont également installées et un journal des installations est tenu à jour afin qu'elles puissent être annulées. Je pense que la plupart des paquets ont un code correspondant Launchpad afin que vous puissiez déposer des problèmes.

Une autre raison d'utiliser les paquets Ubuntu est que ces paquets Python ont parfois des noms différents selon l'endroit d'où vous les avez téléchargés. Python-chardet est un exemple de paquetage qui, à un moment donné, portait un nom sur PyPI et un autre dans le dépôt Ubuntu. Par conséquent, faire quelque chose comme pip install requests ne se rendra pas compte que chardet est déjà installé dans votre système parce que la version Ubuntu a un nom différent, et par conséquent installera une nouvelle version qui corrompra votre système d'une manière mineure et insignifiante, mais tout de même pourquoi feriez-vous cela.

En général, vous ne voulez installer que du code fiable dans votre système d'exploitation. Ainsi, le vous devriez être nerveux sur la dactylographie $ sudo pip <anything-could-be-very-bad> .

Enfin, certaines choses sont tout simplement plus faciles à installer en utilisant l'un ou l'autre des paquets Ubuntu. Par exemple, si vous essayez pip install numpy pour installer numpy & scipy si vous n'avez pas déjà installé gfortran, atlas-dev, blas-dev et lapack-dev, vous verrez un flux sans fin d'erreurs de compilation. Cependant, l'installation de numpy et scipy via le dépôt Ubuntu est aussi simple que...

$ sudo apt-get install python-numpy python-scipy

Vous avez de la chance, car vous utilisez Ubuntu, l'une des distributions les plus soutenues et les plus fréquemment mises à jour. Il est fort probable que tous les paquets Python dont vous aurez besoin se trouvent dans le dépôt Ubuntu, et sont probablement déjà installés sur votre machine. Et tous les 6 mois, un nouveau cycle de paquets sera publié avec la dernière distribution d'Ubuntu.

Si vous êtes sûr à 100% que le paquet n'interférera pas avec votre système Ubuntu, vous pouvez l'installer en utilisant pip. Ubuntu a la gentillesse de garder ces paquets séparés des paquets de la distribution en plaçant les paquets de la distribution dans un dossier appelé dist-packages/ . Le dépôt Ubuntu contient à la fois pip, virtualenv et setuptools. Cependant, je partage la suggestion de Wojciech d'utiliser virtualenv.

Pour personnel Les projets Python utilisent pip et wheel dans un environnement virtuel.

Si vous avez besoin de la dernière version, ou si le module n'est pas dans le dépôt Ubuntu, démarrez un virtualenv et utilisez pip pour installer le paquetage. Bien que pip et setuptools aient fusionné, IMO pip est préférable à easy-install ou distutils, car il attendra toujours que le paquetage soit complètement téléchargé et construit avant de le copier dans votre système de fichiers, et il rend la mise à jour ou la désinstallation un jeu d'enfant. A bien des égards, il est similaire à apt-get, en ce sens qu'il gère généralement bien les dépendances. Cependant, vous se peut doivent s'occuper eux-mêmes de certaines dépendances, mais comme PEP 513 a été adoptée, il y a maintenant manylinux sur le Python Package Index (PyPI) pour les distributions Linux les plus répandues comme Ubuntu et Fedora. . par exemple, comme mentionné ci-dessus pour NumPy et SciPy, assurez-vous que vous avez installé gfortran, atlas-dev, blas-dev et lapack-dev à partir du dépôt Ubuntu. Par exemple, les deux NumPy y SciPy sont désormais distribués pour Ubuntu en tant que manylinux roues par défaut en utilisant OpenBLAS au lieu d'ATLAS. Vous pouvez toujours les compiler à partir des sources en utilisant la commande options pip --no-use-wheel o --no-binary <format control> .

~$ sudo apt-get install gfortran libblas-dev liblapack-dev libatlas-dev python-virtualenv
~$ mkdir ~/.venvs
~$ virtualenv ~/.venvs/my_py_proj
~$ source ~/.venvs/my_py_proj/bin/activate
~(my_py_proj)$ pip install --no-use-wheel numpy scipy

Voir la section suivante, "Vous n'êtes pas dans la sudoers ", ci-dessous pour installer les versions mises à jour de pip, setuptools, virtualenv ou wheels sur votre site web. personnel à l'aide du profil --user schéma d'installation avec pip. Vous pouvez l'utiliser pour mettre à jour pip pour votre usage personnel en tant que J.F. Sebastian a indiqué dans son commentaire à une autre réponse . REMARQUE : le -m n'est vraiment nécessaire sous MS Windows que lors de la mise à jour de pip .

python -m pip install --user pip setuptools wheel virtualenv

Les versions plus récentes de pip mettent automatiquement les roues en cache, de sorte que ce qui suit n'est utile que pour les anciennes versions de pip. Étant donné que vous serez amené à les installer à plusieurs reprises, pensez à utiliser une roue avec un tuyau pour créer une timonerie. La roue est déjà incluse dans virtualenv depuis la v13.0.0 Par conséquent, si votre version de virtualenv est trop vieux, il se peut que vous deviez d'abord installer une roue.

~(my_py_proj)$ pip install wheel  # only for virtualenv < v13.0.0
~(my_py_proj)$ pip wheel --no-use-wheel numpy scipy

Cela créera des fichiers de roues binaires dans <cwd>/wheelhouse , utiliser -d pour spécifier un autre répertoire. Maintenant, si vous démarrez une autre virtualenv et que vous avez besoin des mêmes paquets que ceux que vous avez déjà construits, vous pouvez les installer à partir de votre timonerie en utilisant pip install --find-links=<fullpath>/wheelhouse

Lire Installation des modules Python dans la documentation Python et Installation des paquets sur le Page principale de l'index des paquets Python . De même tuyau , venv , virtualenv y roue .

Si vous n'êtes pas dans sudoers y virtualenv n'est pas installé.

Une autre option consiste à utiliser un environnement virtuel, ou si vous utilisez un partage Linux sans les privilèges de l'administrateur, à utiliser soit la commande --user o --home=<wherever-you-want> Les schémas d'installation de Python avec l'interface Python distutils installera les paquets à la valeur de site.USERBASE ou à l'endroit de votre choix. Les versions plus récentes de pip disposent également d'une fonction --user option. Ne pas utiliser sudo !

pip install --user virtualenv

Si votre version Linux de pip est trop ancienne, vous pouvez passer des options d'installation en utilisant --install-option qui est utile pour passer des options personnalisées à certains setup.py scripts pour certains paquets qui construisent des extensions, comme la définition de l'option PREFIX . Il se peut que vous deviez simplement extraire la distribution et utiliser distutils pour installer le paquet à l'ancienne en tapant python setup install [options] . La lecture de certains des installer la documentation et le distutils la documentation peut aider.

Python a la gentillesse d'ajouter site.USERBASE à votre PYTHONPATH avant toute autre chose, de sorte que les changements n'auront d'effet que sur vous. Un endroit populaire pour les --home es ~/.local . Voir la page Python guide d'installation du module pour connaître la structure exacte des fichiers et savoir où se trouvent les paquets de votre site. Note : si vous utilisez l'option --home vous devrez peut-être l'ajouter à la liste de contrôle de l'installation. PYTHONPATH en utilisant la variable d'environnement export dans votre .bashrc , .bash_profile ou dans votre Shell pour que vos paquets localisés soient disponibles en Python.

Utilice Continuum Anaconda Python pour les mathématiques, les sciences, les données ou les projets personnels

Si vous utilisez Python pour les mathématiques, la science ou les données, alors IMO est une très bonne option. la distribution Anaconda-Python ou le plus simple distro miniconda publié par Anaconda, Inc. (anciennement connu sous le nom de Continuum Analytics ) . Bien que tout le monde puisse tirer profit de l'utilisation d'Anaconda pour des projets personnels, l'installation par défaut comprend plus de 500 paquets mathématiques et scientifiques tels que NumPy, SciPy, Pandas et Matplotlib tandis que miniconda n'installe que Anaconda-Python et le gestionnaire d'environnement conda. Anaconda ne s'installe que dans votre profil personnel, ie : /home/<user>/ y modifie votre ~/.bashrc o ~/.bash_profile pour ajouter le chemin d'Anaconda à votre chemin personnel. $PATH recommande le sourcing conda.sh dans votre ~/.bashrc qui vous permet d'utiliser conda activate <env|default is base> pour démarrer anaconda - cela n'affecte que les vous - votre chemin d'accès au système est inchangé . C'est pourquoi vous le faites no ont besoin d'un accès root ou sudo pour utiliser Anaconda ! Si vous avez déjà ajouté Anaconda-Python, miniconda ou conda à votre chemin personnel, vous devez supprimer le fichier PATH exporter de votre ~/.bashrc et mettre à jour le nouvelle recommandation Ainsi, votre système Python sera à nouveau le premier.

Cette procédure est quelque peu similaire à celle de la --user que j'ai expliquée dans la dernière section, sauf qu'elle s'applique à Python dans son ensemble et pas seulement aux paquets. Par conséquent, Anaconda est complètement séparé de votre système Python Il n'interfère pas avec votre système Python et vous êtes le seul à pouvoir l'utiliser ou le modifier. Comme il installe une nouvelle version de Python et de toutes ses bibliothèques, vous aurez besoin d'au moins 200 Mo d'espace, mais il est très intelligent en ce qui concerne la mise en cache et la gestion des bibliothèques, ce qui est important pour certaines des choses intéressantes que vous pouvez faire avec Anaconda.

Anaconda conserve une collection de binaires et de bibliothèques Python requis par les dépendances dans un fichier (anciennement appelé binstar ) Ils hébergent également les paquets des utilisateurs sous la forme de différents "canaux". Le gestionnaire de paquets utilisé par Anaconda, conda installe par défaut les paquets d'Anaconda, mais vous pouvez signaler un "canal" différent en utilisant l'option -c option.

Installer les paquets avec conda comme pip :

$ conda install -c pvlib pvlib  # install pvlib pkg from pvlib channel

Mais conda peut faire beaucoup plus ! Il peut également créer et gérer des environnements virtuels, tout comme virtualenv . Par conséquent, étant donné qu'Anaconda crée des environnements virtuels, les pip peut être utilisé pour installer des paquets de PyPI dans un environnement Anaconda sans l'aide de root ou de sudo . Faire no utiliser sudo avec Anaconda ! Attention ! Attention toutefois lors du mélange pip y conda dans un environnement Anaconda, car vous devrez gérer les dépendances des paquets avec plus de soin. Une autre option pour pip dans un environnement conda est d'utiliser l'option canal conda-forge mais il est également préférable de le faire dans un nouvel environnement conda avec conda-forge comme canal par défaut. En dernier recours, si vous ne pouvez pas trouver un paquet ailleurs que sur PyPI, envisagez d'utiliser --no-deps puis installez les dépendances restantes manuellement à l'aide de conda .

Anaconda est également similaire à certains égards à Ruby RVM si vous connaissez cet outil. Anaconda conda vous permet également de créer des environnements virtuels avec différents versions de Python . par exemple : conda create -n py35sci python==3.5.2 numpy scipy matplotlib pandas statsmodels seaborn créera une pile scientifique/de données en utilisant Python-3.5 dans un nouvel environnement appelé py35sci . Vous pouvez changer d'environnement en utilisant conda . Depuis conda-4.4.0, c'est maintenant différents à virtualenv qui utilise source venv/bin/activate mais avant le conda-4.4.0 les conda Les commandes étaient les même como virtualenv et a également utilisé source :

# AFTER conda-4.4 
~/Projects/myproj $ conda activate py35sci

# BEFORE conda-4.4 
~/Projects/myproj $ source activate py35sci

Mais ce n'est pas tout ! Anaconda peut également installer différentes langues telles que R pour la programmation statistique del Anaconda r canal . Vous pouvez même créer votre propre canal pour télécharger des distributions de paquets. construit pour conda . Comme indiqué conda-forge maintient des constructions automatisées de nombreux paquets sur PyPI à l'adresse conda-forge Canal Anaconda .

Épilogue

Il existe de nombreuses options pour maintenir vos projets Python sous Linux, en fonction de vos besoins personnels et de votre accès. Cependant, s'il y a une chose que j'espère que vous retiendrez de cette réponse, c'est que vous ne devez jamais utiliser sudo pip pour installer les paquets Python . L'utilisation de sudo devrait être un avertissement de faire preuve d'une grande prudence car vous allez apporter des modifications à l'ensemble du système qui pourraient avoir des conséquences néfastes. Vous avez été prévenu.

Bonne chance et bon codage !

32voto

Scott Noyes Points 1596

Je pense que la meilleure solution pour vous est d'installer le système d'empaquetage Python comme "Python-pip". Vous pouvez l'installer avec Synaptic ou Ubuntu Software Center.

Pip vous permettra d'installer et de désinstaller facilement les paquets Python, tout simplement comme suit pip install package . Dans votre cas, il s'agirait de quelque chose comme ceci dans le terminal :

sudo pip install tweeststream

10voto

Tom Points 3697

En plus de l'ajout de Novarchibald, c'est généralement une bonne idée de créer un environnement virtuel pour votre projet Python et d'y installer les dépendances. Cela vous permet de mieux contrôler les dépendances et leurs versions. Pour mettre en place un environnement virtuel, entrez :

virtualenv --no-site-packages --distribute my_python_project

Ensuite, activez-la avec :

cd my_python_project
source bin/activate

À ce stade, tout ce que vous installez avec pip sera conservé dans cet environnement virtuel. Si vous voulez installer quelque chose globalement, vous devez d'abord quitter l'environnement virtuel avec :

deactivate

Pour en savoir plus sur virtualenv aquí .

4voto

Novarchibald Points 183

En plus de la réponse de Zetah, la commande pour installer Python-pip depuis le terminal est la suivante :

sudo apt-get install python-pip

1voto

gavisic Points 11

Essayez ceci Un cadre d'interface graphique pour PIP développé à l'aide de PyQt4

Un cadre d'interface graphique pour PIP développé à l'aide de PyQt4

L'écran de démarrage

enter image description here

L'écran de démarrage contient des options permettant à l'utilisateur de sélectionner le processus qu'il souhaite exécuter.

Il est également possible de spécifier la version de Python sur laquelle les opérations doivent être effectuées.

Le menu Fichier comporte une option "Quitter" (raccourci : Ctrl+Q) et "Rafraîchir les listes" qui actualise les fichiers de ressources contenant les données du paquet.

L'écran d'installation

enter image description here

L'écran d'installation comporte une barre de recherche que l'utilisateur peut utiliser pour rechercher et installer le(s) paquet(s) souhaité(s).

L'écran de mise à jour

enter image description here

L'écran de mise à jour affiche la liste des paquets qui ne sont plus à jour et qui peuvent être mis à niveau.

L'écran de désinstallation

enter image description here

L'écran de désinstallation affiche la liste des paquets installés sur le système de l'utilisateur et pouvant être désinstallés.

La fenêtre de progression

enter image description here

La fenêtre de progression est un widget de terminal intégré à PIP-GUI qui affiche les processus en cours lors de l'exécution d'opérations.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X