¿Cómo instalo el paquete yaml para Python?


347

Tengo un programa de Python que usa YAML. Intenté instalarlo en un nuevo servidor usando pip install yamly devuelve lo siguiente:

$ 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

¿Cómo instalo el paquete yaml para Python? Estoy ejecutando Python 2.7. (SO: Debian Wheezy)


agregue información sobre qué plataforma utiliza. libyaml. pyyaml.org/wiki/LibYAML no es un paquete de Python puro, puede causar una instalación diferente.
— Larry Cai

Respuestas:


568

Puedes probar la función de búsqueda en pip,

$ pip search yaml

que busca paquetes en PyPI con yaml en la breve descripción. Eso revela varios paquetes, incluidos PyYaml, yamltools y PySyck, entre otros ( tenga en cuenta que los documentos de PySyck recomiendan usar PyYaml, ya que syck no está actualizado). Ahora que conoce un nombre de paquete específico, puede instalarlo:

$ pip install pyyaml

Si desea instalar python yaml en todo el sistema en Linux, también puede usar un administrador de paquetes, como aptitudeo yum:

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

99
El nombre del paquete PyYAML al menos en Fedora 21 y CentOS 7 simplemente PyYAMLno lo es python-yaml.
— TNT

3
PyYAML implementa la antigua especificación YAML 1.1 de 2004 (Syck la especificación 1.0 aún más antigua). ruamel.yaml es ahora el paquete no desactualizado que implementa la especificación YAML1.2
— Anthon

Entonces, ¿qué sucede si estoy en un sistema sin pip ni administrador de paquetes?
— FirefoxMetzger

1
@FirefoxMetzger puede obtener python , obtener pip , compilar LibYAML desde el origen y finalmente instalar PyYAML . LibYAML no es estrictamente necesario ya que PyYAML funcionará con python puro (aunque más lento)
— tutuDajuju

muchas gracias, su respuesta ha resuelto mi pregunta por completo.
— Wolfog


49

Actualización: hoy en día la instalación se realiza con pip, pero aún se requiere libyaml para construir la extensión C (en mac):

brew install libyaml
python -m pip install pyyaml

Método anticuado :

Para MacOSX (disidentes), lo siguiente parece funcionar:

brew install libyaml
sudo python -m easy_install pyyaml

66
Esta es la única respuesta que funciona para OS X Yosemite cuando lo intenté.
— Nima

1
Esto funcionó para mí en Yosemite, pero solo con brew's python 2.7.9, no con OS X python 2.7.6.
— David Moles

Esta fue la única respuesta funcional para OS X Lion cuando lo intenté. ¡Muchas gracias! Pensé que no estaba funcionando porque estaba usando un sistema operativo 2011 en 2020.
— TheTechRobo36414519

20
pip install PyYAML

Si no se encuentra o compila libyaml, PyYAML puede hacerlo sin él en Mavericks.


En Ubuntu 14.04 LTS, recibí el error libyaml is not found or a compiler error: forcing --without-libyamlal usar sudo pip install PyYAML. ¿Qué tengo que hacer? Gracias.
— hengxin

1
Sin embargo, dije Successfully installed PyYAML. Consulte pip-PyYAML para obtener información completa. Gracias de nuevo.
— hengxin

14

Hay tres paquetes compatibles con YAML. Syck ( pip install syck) que implementa la especificación YAML 1.0 de 2002; PyYAML ( pip install pyyaml) que sigue la especificación YAML 1.1 de 2004; y ruamel.yaml que sigue la última especificación (YAML 1.2, de 2009).

Puede instalar el paquete compatible con YAML 1.2 con pip install ruamel.yamlo si está ejecutando una versión moderna de Debian / Ubuntu (o derivada) con:

sudo apt-get install python-ruamel.yaml

6

Sistemas basados ​​en Debian:

$ sudo aptitude install python-yaml

o más reciente para python3

$ sudo aptitude install python3-yaml


5

se descargará el siguiente comando pyyaml, que también incluyeyaml

pip install pyYaml

3

"Debería haber una, y preferiblemente solo una, forma obvia de hacerlo". Así que déjame agregar otro. Este es más como "instalar desde fuentes" para Debian / Ubuntu, desde https://github.com/yaml/pyyaml

Instale libYAML y sus encabezados:

sudo apt-get install libyaml-dev

Descargue las fuentes pyyaml:

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

Instalar desde fuentes, (no olvides activar tu 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 

Este fue el único método que me llevó a instalar correctamente los CLoaders en MacOS. Lo intenté anteriormente brew install libyaml & pip install pyyaml, pero python -c 'from yaml import CSafeLoader'seguí fallando
— Luis Meraz

1

Use strictyaml en su lugar

Si tiene el lujo de crear el archivo yaml usted mismo, o si no requiere ninguna de estas características de yaml regular, le recomiendo usar en strictyamllugar del pyyamlpaquete estándar .

En resumen, yaml predeterminado tiene algunos defectos serios en términos de seguridad, interfaz y previsibilidad. strictyamles un subconjunto de la especificación yaml que no tiene esos problemas (y está mejor documentado).

Puede leer más acerca de los problemas con yaml regular aquí

OPINIÓN: strictyaml debe ser la implementación predeterminada de yaml y la antigua especificación de yaml debe estar obsoleta.


0

Para mí, la instalación de la versión de desarrollo de libyaml lo hizo.

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

Incluya explicaciones de que es la instalación de Python en todo el sistema, la arquitectura x86-64 de tit, que debería haber un comando similar para APT ...
— George Sovetov

1
@GeorgeSovetov Hecho
— Mayank Jaiswal

@MayankJaiswal ¿Cómo instalarías la versión de desarrollo para Python 3?
— Amir
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.