Come installo il pacchetto yaml per Python?


347

Ho un programma Python che utilizza YAML. Ho tentato di installarlo su un nuovo server utilizzando pip install yamle restituisce quanto segue:

$ 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

Come installo il pacchetto yaml per Python? Sto eseguendo Python 2.7. (Sistema operativo: Debian Wheezy)


aggiungi informazioni su quale piattaforma usi. libyaml. pyyaml.org/wiki/LibYAML non è un pacchetto Python puro, potrebbe causare un'installazione diversa.
Larry Cai,

Risposte:


568

Puoi provare la funzione di ricerca in pip,

$ pip search yaml

che cerca i pacchetti in PyPI con yaml nella breve descrizione. Ciò rivela vari pacchetti, tra cui PyYaml, yamltools e PySyck, tra gli altri (si noti che i documenti PySyck raccomandano l'uso di PyYaml, poiché syck non è aggiornato). Ora conosci un nome pacchetto specifico, puoi installarlo:

$ pip install pyyaml

Se vuoi installare python yaml a livello di sistema in Linux, puoi anche usare un gestore di pacchetti, come aptitudeo yum:

$ sudo apt-get install python-yaml
$ sudo yum install python-yaml

9
Il nome del pacchetto PyYAML almeno su Fedora 21 e CentOS 7 PyYAMLnon lo è python-yaml.
TNT,

3
PyYAML implementa la vecchia specifica YAML 1.1 del 2004 (Syck la specifica 1.0 ancora più vecchia). ruamel.yaml è ora il pacchetto non obsoleto che implementa la specifica YAML1.2
Anthon,

Quindi cosa succede se mi trovo su un sistema senza pip né con un gestore pacchetti?
FirefoxMetzger,

1
@FirefoxMetzger puoi ottenere Python , ottenere pip , compilare LibYAML dal sorgente e infine installare PyYAML . LibYAML non è strettamente richiesto in quanto PyYAML funzionerà con puro pitone (anche se più lento)
tutuDajuju

grazie mille, la tua risposta ha risolto completamente la mia domanda.
lupo,


49

Aggiornamento: al giorno d'oggi l'installazione viene eseguita con pip, ma libyaml è ancora necessario per compilare l'estensione C (su Mac):

brew install libyaml
python -m pip install pyyaml

Metodo obsoleto :

Per MacOSX (maverick), sembra funzionare quanto segue:

brew install libyaml
sudo python -m easy_install pyyaml

6
Questa è l'unica risposta funzionante per OS X Yosemite quando ho provato.
Nima,

1
Questo ha funzionato per me su Yosemite, ma solo con Python 2.7.9 di brew, non con OS X Python 2.7.6.
David Moles,

Questa è stata l'unica risposta funzionante per OS X Lion quando ho provato. Grazie mille! Pensavo che non funzionasse perché stavo usando un sistema operativo 2011 nel 2020.
TheTechRobo36414519

20
pip install PyYAML

Se libyaml non viene trovato o compilato, PyYAML può farne a meno su Mavericks.


Su Ubuntu 14.04 LTS, ho riscontrato l'errore libyaml is not found or a compiler error: forcing --without-libyamldurante l'utilizzo sudo pip install PyYAML. Cosa dovrei fare? Grazie.
hengxin,

1
Tuttavia, ho detto Successfully installed PyYAML. Vedere pip-PyYAML per informazioni complete. Grazie ancora.
hengxin,

14

Esistono tre pacchetti compatibili con YAML. Syck ( pip install syck) che implementa la specifica YAML 1.0 del 2002; PyYAML ( pip install pyyaml) che segue la specifica YAML 1.1 del 2004; e ruamel.yaml che segue le ultime specifiche (YAML 1.2, dal 2009).

È possibile installare il pacchetto compatibile con YAML 1.2 con pip install ruamel.yamlo se si esegue una versione moderna di Debian / Ubuntu (o derivata) con:

sudo apt-get install python-ruamel.yaml

6

Sistemi basati su Debian:

$ sudo aptitude install python-yaml

o più recenti per python3

$ sudo aptitude install python3-yaml


5

verrà scaricato il seguente comando pyyaml, che include ancheyaml

pip install pyYaml

3

"Dovrebbe esserci uno - e preferibilmente solo uno - un modo ovvio per farlo." Quindi lasciami aggiungere un altro. Questo è più simile a "installa da fonti" per Debian / Ubuntu, da https://github.com/yaml/pyyaml

Installa libYAML e le sue intestazioni:

sudo apt-get install libyaml-dev

Scarica le fonti di pyyaml:

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

Installa da fonti (non dimenticare di attivare la tua venv):

. 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 

Questo è stato l'unico metodo che mi ha portato a installare correttamente i CLoader su MacOS. In precedenza ho provato brew install libyaml & pip install pyyamlma, python -c 'from yaml import CSafeLoader'continuando a fallire
Luis Meraz,

1

Usa invece strictyaml

Se hai il lusso di creare il file yaml da solo, o se non hai bisogno di nessuna di queste funzionalità di yaml normale, ti consiglio di utilizzare al strictyamlposto del pyyamlpacchetto standard .

In breve, lo yaml predefinito presenta alcuni gravi difetti in termini di sicurezza, interfaccia e prevedibilità. strictyamlè un sottoinsieme delle specifiche yaml che non presenta tali problemi (ed è meglio documentato).

Puoi leggere di più sui problemi con lo yaml normale qui

PARERE: strictyaml dovrebbe essere l'implementazione predefinita di yaml e le vecchie specifiche yaml dovrebbero essere obsolete.


0

Per me, l'installazione di versione di sviluppo di libyaml lo ha fatto.

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

Per favore, includi spiegazioni che si tratta dell'installazione Python a livello di sistema, dell'architettura x86-64 di tit, che dovrebbe esserci un comando simile per APT ...
George Sovetov,

1
@GeorgeSovetov Fatto
Mayank Jaiswal il

@MayankJaiswal Come installeresti la versione di sviluppo per Python 3?
Amir,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.