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 !