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)


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

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


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

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.


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

6

Debian-basierte Systeme:

$ sudo aptitude install python-yaml

oder neuer für Python3

$ sudo aptitude install python3-yaml


5

Der folgende Befehl wird heruntergeladen pyyaml, einschließlichyaml

pip install pyYaml

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 

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.


0

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

yum install libyaml-devel         #centos
apt-get install libyaml-dev       # ubuntu

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
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.