¿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)

Harperville
fuente
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
Bonlenfum
fuente
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
tutuDajuju
fuente
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.

bbaassssiiee
fuente
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
Anthon
fuente
6

Sistemas basados ​​en Debian:

$ sudo aptitude install python-yaml

o más reciente para python3

$ sudo aptitude install python3-yaml

hbadger
fuente
5

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

pip install pyYaml
Ankit Shukla
fuente
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 
Sergey Belash
fuente
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.

Connor
fuente
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
Mayank Jaiswal
fuente
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