Aktualisiert: 11.05.2019: In diesem Beitrag werden hauptsächlich virtualenv
, laut dem Python-Dokument zur Modulinstallation , Python 3.5 als Alternative für Python-Versionen vor 3.4 venv
empfohlen virtualenv
.
Update: 2018.08.17: seit Conda-4.4.0 Verwendung conda
zu activate
anaconda auf allen Plattformen
aktualisiert: 2017-03-27: PEP 513 - manylinux
Binärdateien für PyPI
aktualisiert: 19.08.2016: Continuum Anaconda Option
Dies ist etwas ein Duplikat von easy_install / pip oder apt-get .
Verwenden Sie für globale Python-Pakete entweder Ubuntu Software Center, apt, apt-get oder synaptic
Ubuntu verwendet Python für viele wichtige Funktionen, daher kann eine Störung von Python Ihr Betriebssystem beschädigen. Dies ist der Hauptgrund , warum ich nie verwenden pip
auf meinem Ubuntu - System, sondern verwende ich entweder Ubuntu Software Center, synaptic , apt-get
oder die neueren nur apt
, die alle standardmäßig Pakete aus der installieren Ubuntu - Repository . Diese Pakete werden getestet, in der Regel vorkompiliert, damit sie schneller installiert und letztendlich für Ubuntu entwickelt werden können. Außerdem werden alle erforderlichen Abhängigkeiten installiert und ein Protokoll der Installationen wird geführt, damit ein Rollback durchgeführt werden kann. Ich denke, die meisten Pakete haben entsprechende Launchpad- Repos, damit Sie Probleme einreichen können.
Ein weiterer Grund für die Verwendung von Ubuntu-Paketen ist, dass diese Python-Pakete manchmal unterschiedliche Namen haben, je nachdem, von wo Sie sie heruntergeladen haben. Python-chardet ist ein Beispiel für ein Paket, das einmal unter PyPI und einmal im Ubuntu-Repository benannt wurde. Wenn Sie also so etwas tun, pip install requests
wird Ihnen nicht klar, dass chardet bereits auf Ihrem System installiert ist, da die Ubuntu-Version einen anderen Namen hat, und Sie werden folglich eine neue Version installieren, die Ihr System in unwesentlicher Weise beschädigt. Warum sollten Sie das trotzdem tun?
Im Allgemeinen möchten Sie nur vertrauenswürdigen Code in Ihrem Betriebssystem installieren. So sollten Sie sein nervös über das Tippen $ sudo pip <anything-could-be-very-bad>
.
Schließlich sind einige Dinge mit Ubuntu-Paketen einfacher zu installieren. Wenn Sie beispielsweise versuchen pip install numpy
, numpy & scipy zu installieren, es sei denn, Sie haben bereits gfortran, atlas-dev, blas-dev und lapack-dev installiert, wird ein endloser Strom von Kompilierungsfehlern angezeigt. Die Installation von numpy & scipy über das Ubuntu-Repository ist jedoch so einfach wie ...
$ sudo apt-get install python-numpy python-scipy
Sie haben Glück, denn Sie verwenden Ubuntu, eine der am häufigsten unterstützten und oft aktualisierten Distributionen. Höchstwahrscheinlich befindet sich jedes benötigte Python-Paket im Ubuntu-Repository und ist wahrscheinlich bereits auf Ihrem Computer installiert. Und alle 6 Monate wird ein neuer Paketzyklus mit der neuesten Ubuntu-Distribution veröffentlicht.
Wenn Sie zu 100% sicher sind, dass das Paket Ihr Ubuntu-System in keiner Weise beeinträchtigt, können Sie es mit pip installieren, und Ubuntu ist gut genug, um diese Pakete von den Distributionspaketen zu trennen, indem Sie die Distributionspakete in einem Ordner namens ablegen dist-packages/
. Das Ubuntu-Repository enthält sowohl Pip-, Virtualenv- als auch Setuptools. Ich nehme jedoch Wojciechs Vorschlag an, virtualenv zu verwenden.
Verwenden Sie für persönliche Python-Projekte Pip und Wheel in einer virtuellen Umgebung
Wenn Sie die neueste Version benötigen oder das Modul nicht im Ubuntu-Repository vorhanden ist, starten Sie eine virtuelle Umgebung und installieren Sie das Paket mit pip. Obwohl pip und setuptools zusammengeführt wurden, wird IMO pip der einfachen Installation oder der Deinstallation vorgezogen, da immer gewartet wird, bis das Paket vollständig heruntergeladen und erstellt ist, bevor es in Ihr Dateisystem kopiert wird, und ein Upgrade oder eine Deinstallation zum Kinderspiel wird. In vielerlei Hinsicht ähnelt es apt-get, da es im Allgemeinen gut mit Abhängigkeiten umgeht. Jedoch Sie werden möglicherweise einige Abhängigkeiten selbst behandeln müssen, aber da PEP 513 angenommen gibt es jetzt manylinux
Binärdateien im Python Package Index (PyPI) für populäre Linux - Distributionen wie Ubuntu und Fedora .Stellen Sie, wie oben für NumPy und SciPy erwähnt, sicher, dass Sie gfortran, atlas-dev, blas-dev und lapack-dev aus dem Ubuntu-Repository installiert haben. Beispielsweise werden NumPy und SciPy jetzt für Ubuntu standardmäßig mit OpenBLAS als manylinux
Räder verteilt von ATLAS. Sie können sie weiterhin mit den pip-Optionen oder aus dem Quellcode erstellen .--no-use-wheel
--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
sudoers
Informationen zum Installieren aktualisierter Versionen von pip, setuptools, virtualenv oder wheels in Ihrem persönlichen Profil mithilfe des --user
Installationsschemas mit pip finden Sie weiter unten im Abschnitt "Sie sind nicht dabei " . Sie können dies verwenden, um pip für Ihren persönlichen Gebrauch zu aktualisieren, wie JF Sebastian in seinem Kommentar zu einer anderen Antwort angegeben hat . HINWEIS: Das -m
ist wirklich nur unter MS Windows nötig, wenn pip aktualisiert wird .
python -m pip install --user pip setuptools wheel virtualenv
Neuere Versionen von pip speichern Räder automatisch im Cache, daher ist das Folgende nur für ältere Versionen von pip nützlich. Da Sie diese möglicherweise mehrmals installieren, sollten Sie in Betracht ziehen, ein Rad mit einem Rohr zu verwenden, um ein Steuerhaus zu erstellen. Wheel ist bereits invirtualenv
Version 13.0.0 enthalten. Wenn Ihre Version von virtualenv
also zu alt ist, müssen Sie möglicherweise zuerst Wheel installieren.
~(my_py_proj)$ pip install wheel # only for virtualenv < v13.0.0
~(my_py_proj)$ pip wheel --no-use-wheel numpy scipy
Dadurch werden Binärraddateien erstellt <cwd>/wheelhouse
, -d
in denen ein anderes Verzeichnis angegeben wird. Wenn Sie nun eine andere virtuelle Umgebung starten und dieselben Pakete benötigen, die Sie bereits erstellt haben, können Sie diese von Ihrem Steuerhaus aus installierenpip install --find-links=<fullpath>/wheelhouse
Lesen Sie Installieren von Python-Modulen in der Python-Dokumentation und Installieren von Paketen auf der Hauptseite von Python Package Index . Auch Pip , Venv , Virtualenv und Wheel .
Wenn Sie nicht dabei sind sudoers
und virtualenv
nicht installiert sind.
Eine weitere Option für die Verwendung einer virtuellen Umgebung, oder wenn Sie eine Linux-Freigabe ohne Root-Berechtigungen verwenden, können Sie Pakete mit dem --user
oder --home=<wherever-you-want>
Python-Installationsschema mit Python distutils
so installieren, site.USERBASE
wie Sie möchten. Neuere Versionen von pip haben ebenfalls eine --user
Option. Nicht verwenden sudo
!
pip install --user virtualenv
Wenn Ihre Linux-Version von pip zu alt ist, können Sie Setup-Optionen übergeben. Dies --install-option
ist nützlich, um benutzerdefinierte Optionen setup.py
für einige Pakete, die Erweiterungen erstellen, an einige Skripte zu übergeben, z PREFIX
. Möglicherweise müssen Sie nur die Distribution extrahieren und verwenden distutils
, um das Paket nach althergebrachter Methode durch Eingabe zu installieren python setup install [options]
. Das Lesen einiger Installationsdokumentationen und der distutils
Dokumentation kann hilfreich sein.
Python ist schön genug , um hinzuzufügen , site.USERBASE
um Ihr PYTHONPATH
vor allem anderen, so dass nur die Änderungen werden Sie bewirken. Ein beliebter Ort für --home
ist ~/.local
. Die genaue Dateistruktur und die Position Ihrer Site-Pakete finden Sie im Installationshandbuch für das Python- Modul . Hinweis : Wenn Sie die Verwendung --home
Installationsschema dann können Sie es zum hinzufügen müssen PYTHONPATH
Umgebungsvariable export
in Ihrem .bashrc
, .bash_profile
oder in der Shell für die lokalisierte Pakete in Python zur Verfügung stehen.
Verwenden Sie Continuum Anaconda Python für Mathematik, Naturwissenschaften, Daten oder persönliche Projekte
Wenn Sie Python für Mathematik, Naturwissenschaften oder Daten verwenden, ist IMO eine wirklich gute Option: die Anaconda-Python-Distribution oder die grundlegendere Miniconda-Distribution von Anaconda, Inc. (früher als Continuum Analytics bekannt ) . Obwohl jeder von Anaconda für persönliche Projekte profitieren kann, enthält die Standardinstallation über 500 Mathematik- und Wissenschaftspakete wie NumPy, SciPy, Pandas und Matplotlib , während Miniconda nur Anaconda-Python und den Conda-Umgebungsmanager installiert. Anaconda wird nur in Ihr persönliches Profil installiert, dh: /home/<user>/
und ändert Ihren ~/.bashrc
oder ~/.bash_profile
den Pfad von Anaconda vor Ihren persönlichen $PATH
Sourcing-Empfehlungenconda.sh
in Ihrem ~/.bashrc
denen können Sie verwenden conda activate <env|default is base>
Anakonda starten - dies wirkt sich nur auf Sie - Ihrem Systempfad unverändert ist . Daher haben Sie nicht benötigen Root - Zugriff oder sudo
Anaconda zu verwenden! Wenn Sie Anaconda-Python, Miniconda oder Conda bereits zu Ihrem persönlichen Pfad hinzugefügt haben, sollten Sie den PATH
Export von Ihrem entfernen ~/.bashrc
und auf die neue Empfehlung aktualisieren , damit Ihr System-Python wieder der erste ist.
Dies ähnelt der --user
Option, die ich im letzten Abschnitt erläutert habe, mit der Ausnahme, dass sie sich auf Python als Ganzes und nicht nur auf Pakete bezieht. Daher ist Anaconda völlig unabhängig von Ihrem System-Python . Es beeinträchtigt Ihr System-Python nicht und nur Sie können es verwenden oder ändern. Da eine neue Version von Python und all seinen Bibliotheken installiert wird, benötigen Sie mindestens 200 MB Speicherplatz, aber es ist sehr klug, Bibliotheken zu cachen und zu verwalten, was für einige der coolen Dinge wichtig ist, die Sie mit Anaconda tun können.
Anaconda verwaltet eine Sammlung von Python-Binärdateien und -Bibliotheken, die für Abhängigkeiten in einem Online-Repository (früher als binstar bezeichnet ) erforderlich sind , und sie hosten Benutzerpakete auch als verschiedene "Channels". Der von Anaconda verwendete Paketmanager conda
installiert standardmäßig Pakete von Anaconda, aber Sie können mit der -c
Option einen anderen "Kanal" signalisieren .
Installieren von Paketen mit conda
wie pip
:
$ conda install -c pvlib pvlib # install pvlib pkg from pvlib channel
Aber conda
kann so viel mehr tun! Ebenso können virtuelle Umgebungen erstellt und verwaltet werden virtualenv
. Da Anaconda virtuelle Umgebungen erstellt, kann der pip
Paketmanager verwendet werden, um Pakete von PyPI in einer Anaconda-Umgebung ohne root oder zu installieren sudo
. Sie nicht verwenden , sudo
mit Anaconda! Warnung! Seien Sie jedoch vorsichtig, wenn Sie mischen pip
und conda
in einer Anaconda-Umgebung, b / c, müssen Sie Paketabhängigkeiten sorgfältiger verwalten. Eine weitere Option pip
in einer Conda-Umgebung ist die Verwendung des Conda-Forge-Kanals, aber auch am besten in einer frischen Conda-Umgebung mit Conda-Forge als Standardkanal. Wenn Sie als letzte Möglichkeit nur auf PyPI ein Paket finden können, ziehen Sie in Betracht, --no-deps
die verbleibenden Abhängigkeiten mithilfe von manuell zu installieren conda
.
Anaconda ähnelt Ruby RVM in gewisser Weise, wenn Sie mit diesem Tool vertraut sind. Mit Anaconda conda
können Sie auch virtuelle Umgebungen mit verschiedenen Versionen von Python erstellen . Beispiel : conda create -n py35sci python==3.5.2 numpy scipy matplotlib pandas statsmodels seaborn
Erstellt einen wissenschaftlichen / datenwissenschaftlichen Stapel mit Python-3.5 in einer neuen Umgebung namens py35sci
. Sie können die Umgebung mit wechseln conda
. Da Conda-4.4.0 ist dies nun anders zu virtualenv
welchen Zwecken source venv/bin/activate
, aber vorherigen zu Conda-4.4.0 die conda
Befehle das waren gleiche wie virtualenv
und auch verwendet source
:
# AFTER conda-4.4
~/Projects/myproj $ conda activate py35sci
# BEFORE conda-4.4
~/Projects/myproj $ source activate py35sci
Aber warte, es gibt noch mehr! Anaconda kann auch verschiedene Sprachen wie R für die statistische Programmierung über den Anaconda- r
Kanal installieren . Sie können sogar Ihren eigenen Kanal einrichten, um für conda erstellte Paketdistributionen hochzuladen . Wie bereits erwähnt, verwaltet conda-forge automatisierte Builds vieler Pakete auf PyPI im conda-forge Anaconda-Kanal .
Epilog
Es gibt viele Möglichkeiten, Ihre Python-Projekte unter Linux zu verwalten, je nach Ihren persönlichen Bedürfnissen und Zugriffsmöglichkeiten. Ich hoffe jedoch, dass Siesudo
von dieser Antwort absehen, dass Sie sie so gut wie nie zur Installation von Python-Paketen benötigen . Die Verwendung von sudo
sollte ein Geruch für Sie sein, dass etwas nicht stimmt. Du wurdest gewarnt.
Viel Glück und viel Spaß beim Programmieren!