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.