Was ist der beste Weg, um Python-Pakete in Ubuntu 11 zu installieren? Ich bin vor kurzem auf Ubuntu umgestiegen und möchte Best Practices lernen.
Für den Kontext möchte ich das Tweeststream-Paket installieren, es wurde jedoch nicht in meinem Synaptic-Paket-Manager angezeigt. Auch ich bin sehr neu in der Programmierung, aber ich kann in der Regel zusammen mit Codebeispielen folgen.
Antworten:
Ich denke, der beste Weg für Sie wäre, ein Python-Paketierungssystem wie "python-pip" zu installieren. Sie können es mit Synaptic oder Ubuntu Software Center installieren.
Mit Pip können Sie Python-Pakete ganz einfach installieren und deinstallieren
pip install package
. In deinem Fall wäre es ungefähr so vom Terminal:quelle
sudo pip <anything>
sollte sehr vorsichtig verwendet werden. Datweetstream
es sich nicht um Ubuntu Software Center handelt , empfehle ich die Verwendung eines virtuellen Env . tweetstream dassetup.py
erfordert ,anyjson
welche ist ein Ubuntu - Paket . Wenn Sie tweetstream in a nicht installieren,virtualenv
kann dies dazu führen, dass andere Ubuntu-Apps, die darauf angewiesen sindanyjson
, fehlschlagen. Problemlösung hart.sudo pip
auf Ubuntu verwenden. @MarkMikofski: du brauchst kein virtualenv (es sei denn du willst es aus einem bestimmten Grund).python -mpip install --user package-name
kann das Paketpackafe-name
für den aktuellen Benutzer installieren . Wenn es komplexe (große C-Erweiterungen) Abhängigkeiten gibt; Sie können sie mithilfe von installierenapt-get
, um die Installation von Build-Abhängigkeiten zu vermeiden, sofern dies nicht erforderlich ist.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.4venv
empfohlenvirtualenv
.Update: 2018.08.17: seit Conda-4.4.0 Verwendung
conda
zuactivate
anaconda auf allen Plattformenaktualisiert: 2017-03-27: PEP 513 -
manylinux
Binärdateien für PyPIaktualisiert: 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 nurapt
, 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 ...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
werdenmöglicherweise einige Abhängigkeiten selbst behandeln müssen, aber da PEP 513 angenommen gibt es jetztmanylinux
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 alsmanylinux
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>
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 .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 in
virtualenv
Version 13.0.0 enthalten. Wenn Ihre Version vonvirtualenv
also zu alt ist, müssen Sie möglicherweise zuerst Wheel installieren.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
undvirtualenv
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 Pythondistutils
so installieren,site.USERBASE
wie Sie möchten. Neuere Versionen von pip haben ebenfalls eine--user
Option. Nicht verwendensudo
!Wenn Ihre Linux-Version von pip zu alt ist, können Sie Setup-Optionen übergeben. Dies
--install-option
ist nützlich, um benutzerdefinierte Optionensetup.py
für einige Pakete, die Erweiterungen erstellen, an einige Skripte zu übergeben, zPREFIX
. Möglicherweise müssen Sie nur die Distribution extrahieren und verwendendistutils
, um das Paket nach althergebrachter Methode durch Eingabe zu installierenpython setup install [options]
. Das Lesen einiger Installationsdokumentationen und derdistutils
Dokumentation kann hilfreich sein.Python ist schön genug , um hinzuzufügen ,
site.USERBASE
um IhrPYTHONPATH
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üssenPYTHONPATH
Umgebungsvariableexport
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 IhrenSourcing-Empfehlungen~/.bashrc
oder~/.bash_profile
den Pfad von Anaconda vor Ihren persönlichen$PATH
conda.sh
in Ihrem~/.bashrc
denen können Sie verwendenconda 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 odersudo
Anaconda zu verwenden! Wenn Sie Anaconda-Python, Miniconda oder Conda bereits zu Ihrem persönlichen Pfad hinzugefügt haben, sollten Sie denPATH
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
wiepip
:Aber
conda
kann so viel mehr tun! Ebenso können virtuelle Umgebungen erstellt und verwaltet werdenvirtualenv
. Da Anaconda virtuelle Umgebungen erstellt, kann derpip
Paketmanager verwendet werden, um Pakete von PyPI in einer Anaconda-Umgebung ohne root oder zu installierensudo
. Sie nicht verwenden ,sudo
mit Anaconda! Warnung! Seien Sie jedoch vorsichtig, wenn Sie mischenpip
undconda
in einer Anaconda-Umgebung, b / c, müssen Sie Paketabhängigkeiten sorgfältiger verwalten. Eine weitere Optionpip
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 installierenconda
.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 namenspy35sci
. Sie können die Umgebung mit wechselnconda
. Da Conda-4.4.0 ist dies nun anders zuvirtualenv
welchen Zweckensource venv/bin/activate
, aber vorherigen zu Conda-4.4.0 dieconda
Befehle das waren gleiche wievirtualenv
und auch verwendetsource
: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 Sie
sudo
von dieser Antwort absehen, dass Sie sie so gut wie nie zur Installation von Python-Paketen benötigen . Die Verwendung vonsudo
sollte ein Geruch für Sie sein, dass etwas nicht stimmt. Du wurdest gewarnt.Viel Glück und viel Spaß beim Programmieren!
quelle
sudo
Herumspielen zerstört hättepip
. Vielen Dank für diese Informationen.pip install numpy
sollte alle Abhängigkeiten installierenpip install <package>
werden jedoch nur die iminstall_requires
Abschnitt von aufgeführten Python-Paketabhängigkeiten installiertsetup.py
. Zum Beispiel: Installation Jupyter nicht Haskell - Bibliothek installieren pandoc Jupyter Notebooks als LaTeX zu exportieren, etcconda install <package>
wahrscheinlich alle Abhängigkeiten, einschließlich C / C ++, FORTRAN usw., auch Haskell-Bibliotheken installiert, da conda nicht nur Python-Pakete wie pip verwaltet, sondern auch Umgebungen. Also , wenn Sie Anaconda oder miniconda haben dannconda install Jupyter
installiert alles in der Rezept -meta.yml
Datei , einschließlich der pandoc Haskell - Bibliothek . Für weitere Informationen siehe PyPAZusätzlich zu Novarchibalds Hinzufügung ist es im Allgemeinen eine gute Idee, eine virtuelle Umgebung für Ihr Python-Projekt zu erstellen und Abhängigkeiten darin zu installieren. Auf diese Weise haben Sie eine bessere Kontrolle über Abhängigkeiten und ihre Versionen. Geben Sie Folgendes ein, um eine virtuelle Umgebung einzurichten:
Dann aktivieren Sie es mit:
Zu diesem Zeitpunkt verbleibt alles, was Sie mit pip installieren, in dieser virtuellen Umgebung. Wenn Sie etwas global installieren möchten, sollten Sie zunächst virtualenv mit folgendem Befehl beenden:
Mehr über virtualenv erfahren Sie hier .
quelle
virtualenv
Optionen--no-site-packages
und--distribute
heutzutage veraltet sind und keine Wirkung mehr haben.Zusätzlich zur Antwort von Zetah'a lautet der Befehl zum Installieren von python-pip vom Terminal aus:
quelle
Probieren Sie es aus Ein GUI-Framework für PIP, das mit PyQt4 entwickelt wurde
Ein mit PyQt4 entwickeltes GUI-Framework für PIP
Der Startbildschirm
Der Startbildschirm enthält Optionen, mit denen der Benutzer den Prozess auswählen kann, den er ausführen möchte.
Man kann auch die Version von Python angeben, für die die Operationen ausgeführt werden sollen.
Das Dateimenü verfügt über die Optionen "Beenden" (Tastenkürzel: Strg + Q) und "Listen aktualisieren", mit denen die Ressourcendateien mit den Paketdaten aktualisiert werden.
Der Installationsbildschirm
Der Installationsbildschirm enthält eine Suchleiste, mit der der Benutzer die gewünschten Pakete suchen und installieren kann.
Der Update-Bildschirm
Der Aktualisierungsbildschirm zeigt die Liste der Pakete an, die veraltet sind und aktualisiert werden können.
Der Deinstallations-Screem
Der Deinstallationsbildschirm zeigt die Liste der Pakete an, die auf dem System des Benutzers installiert sind und deinstalliert werden können.
Das Fortschrittsfenster
Das Fortschrittsfenster ist ein integriertes Terminal-Widget für die PIP-GUI, das die Prozesse anzeigt, die während der Ausführung von Vorgängen ausgeführt werden.
quelle