Wie installiere ich das yaml-Paket für Python?

346

Ich habe ein Python-Programm, das YAML verwendet. Ich habe versucht, es mit auf einem neuen Server zu installieren, pip install yamlund es wird Folgendes zurückgegeben:

$ sudo pip install yaml
Downloading/unpacking yaml
  Could not find any downloads that satisfy the requirement yaml
No distributions at all found for yaml
Storing complete log in /home/pa/.pip/pip.log

Wie installiere ich das yaml-Paket für Python? Ich verwende Python 2.7. (Betriebssystem: Debian Wheezy)

Harperville
quelle
Fügen Sie Informationen hinzu, auf welcher Plattform Sie verwenden. libyaml. pyyaml.org/wiki/LibYAML ist kein reines Python-Paket, es kann zu einer anderen Installation führen.
Larry Cai

Antworten:

567

Sie können die Suchfunktion in pip ausprobieren,

$ pip search yaml

die in der Kurzbeschreibung nach Paketen in PyPI mit yaml sucht. Daraus werden verschiedene Pakete angezeigt, darunter unter anderem PyYaml, yamltools und PySyck (Beachten Sie, dass PySyck-Dokumente vorhanden sind die Verwendung von PyYaml empfehlen, da syck veraltet ist). Nachdem Sie einen bestimmten Paketnamen kennen, können Sie ihn installieren:

$ pip install pyyaml

Wenn Sie Python Yaml systemweit unter Linux installieren möchten, können Sie auch einen Paketmanager wie aptitudeoder verwenden yum:

$ sudo apt-get install python-yaml
$ sudo yum install python-yaml
Bonlenfum
quelle
9
Der Name des PyYAML-Pakets zumindest unter Fedora 21 und CentOS 7 ist einfach PyYAMLnicht python-yaml.
TNT
3
PyYAML implementiert die alte YAML 1.1-Spezifikation von 2004 (Syck die noch ältere 1.0-Spezifikation). ruamel.yaml ist jetzt das nicht veraltete Paket, das die YAML1.2-Spezifikation implementiert
Anthon
Was ist, wenn ich auf einem System ohne Pip oder Paketmanager bin?
FirefoxMetzger
1
@FirefoxMetzger Sie können Python erhalten , bekommen pip , bauen libyaml von Quelle und schließlich PyYAML installieren . LibYAML ist nicht unbedingt erforderlich, da PyYAML mit reinem Python (wenn auch langsamer)
funktioniert
Vielen Dank, Ihre Antwort hat meine Frage vollständig gelöst.
Wolfog
91

pip install pyyaml

Wenn Sie kein Pip haben, führen Sie es aus easy_install pip, um pip zu installieren. Dies ist das Installationsprogramm für Go-to-Pakete. Warum sollten Sie pip über easy_install verwenden? . Wenn Sie lieber bei easy_install bleiben möchten, danneasy_install pyyaml

Harperville
quelle
49

Update: Heutzutage erfolgt die Installation mit pip, aber libyaml ist noch erforderlich, um die C-Erweiterung (auf dem Mac) zu erstellen:

brew install libyaml
python -m pip install pyyaml

Veraltete Methode :

Für MacOSX (Außenseiter) scheint Folgendes zu funktionieren:

brew install libyaml
sudo python -m easy_install pyyaml
tutuDajuju
quelle
6
Dies ist die einzige funktionierende Antwort für OS X Yosemite, als ich es versuchte.
Nima
1
Dies funktionierte für mich auf Yosemite, aber nur mit Brews Python 2.7.9, nicht mit OS X Python 2.7.6.
David Moles
Dies war die einzige funktionierende Antwort für OS X Lion, als ich es versuchte. Vielen Dank! Ich dachte, es würde nicht funktionieren, weil ich 2020 ein 2011er Betriebssystem verwendete.
TheTechRobo36414519
20
pip install PyYAML

Wenn libyaml nicht gefunden oder kompiliert wird, kann PyYAML auf Mavericks darauf verzichten.

bbaassssiiee
quelle
Unter Ubuntu 14.04 LTS wurde libyaml is not found or a compiler error: forcing --without-libyamlbei der Verwendung der Fehler angezeigt sudo pip install PyYAML. Was sollte ich tun? Vielen Dank.
Hengxin
1
Ich sagte jedoch Successfully installed PyYAML. Vollständige Informationen finden Sie unter pip-PyYAML . Danke noch einmal.
Hengxin
14

Es gibt drei YAML-fähige Pakete. Syck ( pip install syck), das die YAML 1.0-Spezifikation von 2002 implementiert; PyYAML ( pip install pyyaml), das der YAML 1.1-Spezifikation von 2004 folgt; und ruamel.yaml das der neuesten Spezifikation (YAML 1.2, ab 2009) folgt.

Sie können das YAML 1.2-kompatible Paket installieren mit pip install ruamel.yamloder wenn Sie eine moderne Version von Debian / Ubuntu (oder einem Derivat) ausführen mit:

sudo apt-get install python-ruamel.yaml
Anthon
quelle
6

Debian-basierte Systeme:

$ sudo aptitude install python-yaml

oder neuer für Python3

$ sudo aptitude install python3-yaml

hbadger
quelle
5

Der folgende Befehl wird heruntergeladen pyyaml, einschließlichyaml

pip install pyYaml
Ankit Shukla
quelle
3

"Es sollte einen - und vorzugsweise nur einen - offensichtlichen Weg geben, dies zu tun." Lassen Sie mich noch einen hinzufügen. Dieser ist eher wie "Installation aus Quellen" für Debian / Ubuntu unter https://github.com/yaml/pyyaml

Installieren Sie die libYAML und ihre Header:

sudo apt-get install libyaml-dev

Laden Sie die Pyyaml-Quellen herunter :

wget http://pyyaml.org/download/pyyaml/PyYAML-3.13.tar.gz

Installieren Sie aus Quellen (vergessen Sie nicht, Ihr venv zu aktivieren):

. your/env/bin/activate
tar xzf PyYAML-3.13.tar.gz
cd PyYAML-3.13.tar.gz
(env)$ python setup.py install
(env)$ python setup.py test 
Sergey Belash
quelle
Dies war die einzige Methode, die mich dazu brachte, die CLoaders unter MacOS korrekt zu installieren. Ich habe es zuvor versucht, brew install libyaml & pip install pyyamlaber python -c 'from yaml import CSafeLoader'immer wieder versagt
Luis Meraz
1

Verwenden Sie strictyaml stattdessen

Wenn Sie den Luxus haben, die Yaml-Datei selbst zu erstellen, oder wenn Sie keine dieser Funktionen von normalem Yaml benötigen, empfehle ich die Verwendung strictyamlanstelle des Standardpakets pyyaml.

Kurz gesagt, Standard-Yaml weist einige schwerwiegende Mängel in Bezug auf Sicherheit, Benutzeroberfläche und Vorhersagbarkeit auf. strictyamlist eine Teilmenge der yaml-Spezifikation, die diese Probleme nicht aufweist (und besser dokumentiert ist).

Hier können Sie mehr über die Probleme mit normalem Yaml lesen

STELLUNGNAHME: strictyaml sollte die Standardimplementierung von yaml sein und die alte yaml-Spezifikation sollte veraltet sein.

Connor
quelle
0

Für mich hat es die Installation der Entwicklungsversion von libyaml geschafft.

yum install libyaml-devel         #centos
apt-get install libyaml-dev       # ubuntu
Mayank Jaiswal
quelle
Bitte fügen Sie Erklärungen bei, dass es sich um eine systemweite Python-Installation handelt, die x86-64-Architektur von tit, dass es einen ähnlichen Befehl für APT geben sollte ...
George Sovetov
1
@ GeorgeSovetov Fertig
Mayank Jaiswal
@MayankJaiswal Wie würden Sie die Entwicklungsversion für Python 3 installieren?
Amir