updated: 2019-05-11: Cet article mentionne principalement virtualenv
, mais selon la documentation de Python sur l'installation de module , puisque Python 3.5 "l'utilisation de venv
est désormais recommandée pour la création d'environnements virtuels", alors qu'il virtualenv
s'agit d'une alternative pour les versions de Python antérieures à 3.4 .
Mise à jour: 17/08/2018: depuis Conda-4.4.0 utilisation conda
à activate
Anaconda sur toutes les plateformes
mis à jour: 2017-03-27: PEP 513 - manylinux
fichiers binaires pour PyPI
Mis à jour le: 19-08-2016: Option Anaconda Continuum
C'est un peu une copie de easy_install / pip ou d'apt-get .
Pour les packages Python globaux , utilisez le Centre de logiciel Ubuntu, apt, apt-get ou synaptic.
Ubuntu utilise Python pour de nombreuses fonctions importantes. Par conséquent, une interférence avec Python peut corrompre votre système d'exploitation. C'est la principale raison pour laquelle je ne l' utilise pip
sur mon système Ubuntu, mais je l' utilise soit Ubuntu Software Center, synaptique , apt-get
ou le plus récent justeapt
, tous par défaut installer des paquets à partir du référentiel Ubuntu . Ces paquets sont testés, généralement pré-compilés pour une installation plus rapide et finalement conçus pour Ubuntu. De plus, toutes les dépendances requises sont également installées et un journal des installations est maintenu afin de pouvoir être annulé. Je pense que la plupart des paquets ont des pensions du Launchpad correspondantes, ce qui vous permet de classer les problèmes.
Une autre raison d'utiliser l'un ou l'autre des paquets Ubuntu est que parfois, ces paquets Python ont des noms différents selon l'endroit où vous les avez téléchargés. Python-chardet est un exemple de paquet qui s'appelait autrefois dans PyPI et dans le référentiel Ubuntu. Par conséquent, vous pip install requests
ne réaliserez pas que chardet est déjà installé sur votre système car la version d’Ubuntu porte un nom différent. Par conséquent, installez une nouvelle version qui corrompra votre système d’une manière mineure mais insignifiante, mais pourquoi feriez-vous cela.
En général, vous souhaitez uniquement installer du code de confiance dans votre système d'exploitation. Donc, vous devriez être nerveux à propos de la frappe $ sudo pip <anything-could-be-very-bad>
.
Enfin, certaines choses sont simplement plus faciles à installer avec les paquets Ubuntu. Par exemple si vous essayezpip install numpy
d’installer numpy & scipy sauf si vous avez déjà installé gfortran, atlas-dev, blas-dev et lapack-dev, vous verrez un flot infini d’erreurs de compilation. Cependant, installer numpy & scipy via le référentiel 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 largement prises en charge et les plus mises à jour. Il est fort probable que tous les packages Python dont vous aurez besoin se trouvent dans le référentiel Ubuntu et sont probablement déjà installés sur votre ordinateur. 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 en aucune manière avec votre système Ubuntu, vous pouvez l’installer à l’aide de pip et Ubuntu aura la gentillesse de garder ces paquets séparés des paquets de distribution en plaçant les paquets de distribution dans un dossier appelé dist-packages/
. Le référentiel Ubuntu a à la fois pip, virtualenv et setuptools. Cependant, je souscris à la suggestion de Wojciech d’utiliser virtualenv.
Pour les projets personnels Python, utilisez pip and wheel dans un environnement virtuel
Si vous avez besoin de la dernière version ou si le module ne se trouve pas dans le référentiel Ubuntu, démarrez virtualenv et utilisez pip pour installer le paquet. Bien que pip et setuptools aient fusionné, le pip IMO est préférable à easy-install ou distutils, car il attend toujours que le paquet soit complètement téléchargé et construit avant de le copier dans votre système de fichiers, ce qui facilite la mise à niveau ou la désinstallation. À bien des égards, il ressemble à apt-get, en ce sens qu'il gère généralement bien les dépendances. Cependant, vous devrez peut- être gérer certaines dépendances vous-même, mais depuis l' adoption de PEP 513, il existe désormais des manylinux
fichiers binaires dans Python Package Index (PyPI) pour les distributions Linux populaires telles que 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 référentiel Ubuntu. Par exemple, NumPy et SciPy sont maintenant distribués pour Ubuntu sous forme de manylinux
roulettes utilisant par défaut OpenBLAS. d'ATLAS. Vous pouvez toujours les construire à partir des sources en utilisant les options pip --no-use-wheel
ou--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
Reportez-vous à la section suivante, "Vous n’êtes pas sudoers
", ci-dessous pour installer les versions mises à jour de pip, setuptools, virtualenv ou wheel sur votre profil personnel à l’aide du --user
schéma d’installation avec pip. Vous pouvez l’utiliser pour mettre à jour pip pour votre usage personnel, comme l’a indiqué JF Sebastian dans son commentaire pour une autre réponse . REMARQUE: l' -m
est vraiment nécessaire que sur MS Windows lors de la mise à jour pip .
python -m pip install --user pip setuptools wheel virtualenv
Les nouvelles versions de pip mettent automatiquement en cache les roues, ce qui suit n’est utile que pour les anciennes versions de pip. Étant donné que vous risquez de devoir installer plusieurs fois, envisagez d'utiliser une roue avec pip pour créer une timonerie. Wheel est déjà inclus dans la virtualenv
v13.0.0. Par conséquent, si votre version de virtualenv
est trop ancienne, vous devrez peut-être installer Wheel en premier.
~(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 roue binaire <cwd>/wheelhouse
, à utiliser -d
pour spécifier un répertoire différent. Maintenant, si vous démarrez un autre virtualenv et que vous avez besoin des mêmes packages que ceux que vous avez déjà construits, vous pouvez les installer à partir de votre timonerie à l’aide depip install --find-links=<fullpath>/wheelhouse
Lisez la section Installation de modules Python dans la documentation Python et Installation de packages sur la page principale de Python Package Index . Aussi pip , venv , virtualenv et wheel .
Si vous n'êtes pas dans sudoers
et virtualenv
n'est pas installé.
Une autre option consiste à utiliser un environnement virtuel ou, si vous utilisez un partage Linux sans privilèges root, à l'aide du schéma d'installation --user
ou du --home=<wherever-you-want>
schéma d'installation Python avec Python distutils
installera les packages à la valeur site.USERBASE
ou à l'endroit souhaité. Les nouvelles versions de pip ont également une --user
option. Ne pas utiliser sudo
!
pip install --user virtualenv
Si votre version Linux de pip est trop ancienne, vous pouvez alors transmettre les options de configuration, --install-option
ce qui est utile pour transmettre des options personnalisées à certains setup.py
scripts de certains packages générant des extensions, telles que la définition du fichier PREFIX
. Vous devrez peut-être simplement extraire la distribution et l'utiliser distutils
pour installer le paquet à l'ancienne, en le saisissant python setup install [options]
. La lecture d'une partie de la documentation d'installation et de la distutils
documentation peut aider.
Python est assez gentil pour ajouter site.USERBASE
de l’ PYTHONPATH
avance à toute autre chose, alors les changements ne vous affecteront que. Un endroit populaire pour --home
est ~/.local
. Consultez le guide d'installation du module Python pour connaître la structure de fichier exacte et plus précisément l'emplacement de vos packages de site. Remarque : si vous utilisez le --home
système d'installation, vous devrez peut - être ajouter à la PYTHONPATH
variable d'environnement à l' aide export
de votre .bashrc
, .bash_profile
ou dans votre shell pour vos paquets localisés à être disponibles en Python.
Utilisez Continuum Anaconda Python pour des projets mathématiques, scientifiques, de données ou personnels
Si vous utilisez Python pour les mathématiques, les sciences ou les données, alors IMO est une très bonne option: la distribution Anaconda-Python ou la distribution plus élémentaire miniconda distribuée par Anaconda, Inc. (anciennement appelée Continuum Analytics ) . Bien que quiconque puisse tirer parti d’Anaconda pour des projets personnels, l’installation par défaut comprend plus de 500 logiciels de mathématiques et de sciences tels que NumPy, SciPy, Pandas et Matplotlib , tandis que miniconda n’installe que Anaconda-Python et le gestionnaire de l’environnement. Anaconda n’installe que dans votre profil personnel, c’est -à- dire:/home/<user>/
et vous permet de modifier ou d’ajouter le chemin d’ Anaconda à votre profil personnel dans votre dossier personnel~/.bashrc
~/.bash_profile
$PATH
recommandations matière d'approvisionnement.conda.sh
dans votre ~/.bashrc
qui vous permet conda activate <env|default is base>
de démarrer anaconda - cela ne vous concerne que - votre chemin système reste inchangé . Par conséquent, vous n'avez pas besoin d'accéder à la racine ou sudo
d'utiliser Anaconda! Si vous avez déjà ajouté Anaconda-Python, miniconda ou conda à votre chemin personnel, supprimez l' PATH
exportation de votre ~/.bashrc
et mettez à jour la nouvelle recommandation afin que votre système Python soit à nouveau en premier.
Ceci est un peu similaire à l' --user
option que j'ai expliquée dans la dernière section, sauf qu'elle s'applique à Python dans son ensemble et pas seulement aux packages. Par conséquent, Anaconda est complètement séparé de votre système Python , il n’interférera pas avec votre système Python et vous seul pouvez 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 disque, mais il est très astucieux de mettre en cache et de gérer les bibliothèques, ce qui est important pour certaines choses intéressantes que vous pouvez faire avec Anaconda.
Anaconda gère une collection de fichiers binaires et de bibliothèques Python requis par les dépendances dans un référentiel en ligne (anciennement appelé binstar ) , et héberge également les packages utilisateur en tant que "canaux" différents. Le gestionnaire de packages utilisé par Anaconda, conda
installe par défaut les packages à partir d'Anaconda, mais vous pouvez signaler un "canal" différent à l'aide de l' -c
option.
Installez les paquets avec conda
juste 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, puisque Anaconda crée des environnements virtuels, le pip
gestionnaire de paquets peut être utilisé pour installer des paquets à partir de PyPI dans un environnement Anaconda sans root ou sudo
. Ne pas utiliser sudo
avec Anaconda! Attention! Soyez prudent lorsque vous mixez pip
et conda
dans un environnement Anaconda, car vous devrez gérer les dépendances des paquets avec plus de soin. Une autre option pip
dans un environnement conda consiste à utiliser le canal conda-forge, mais il est également préférable de le faire dans un environnement de conda frais avec conda-forge comme canal par défaut. En dernier recours, si vous ne trouvez aucun paquet ailleurs que sur PyPI, envisagez d’utiliser --no-deps
puis d’installer manuellement les dépendances restantes 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érentes 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 avec Python-3.5 dans un nouvel environnement appelé py35sci
. Vous pouvez changer d’environnement en utilisant conda
. Depuis Conda-4.4.0, cela est maintenant différent de virtualenv
qui utilise source venv/bin/activate
, mais avant Conda-4.4.0 les conda
commandes étaient les mêmes que virtualenv
et également utilisé source
:
# AFTER conda-4.4
~/Projects/myproj $ conda activate py35sci
# BEFORE conda-4.4
~/Projects/myproj $ source activate py35sci
Mais attendez il y a plus! Anaconda peut également installer différentes langues telles que R pour la programmation statistique à partir du canal Anacondar
. Vous pouvez même configurer votre propre canal pour télécharger des distributions de paquetages conçues pour conda . Comme mentionné précédemment, conda-forge gère des versions automatisées de nombreux packages sur PyPI sur le canal conda-forge Anaconda .
Épilogue
Il existe de nombreuses options pour la maintenance de vos projets Python sous Linux en fonction de vos besoins et de votre accès. Cependant, s’il ya quelque chose que je retiens de cette réponse, j’espère que vous ne devriez presque jamais avoir besoin de l’utiliser sudo
pour installer des paquets Python . L'utilisation de sudo
devrait vous faire sentir que quelque chose ne va pas. Tu étais prévenu.
Bonne chance et bon codage!