Como instalo o pacote yaml para Python?


347

Eu tenho um programa Python que usa YAML. Tentei instalá-lo em um novo servidor usando pip install yamle ele retorna o seguinte:

$ 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

Como instalo o pacote yaml para Python? Estou executando o Python 2.7. (SO: Debian Wheezy)


adicione informações sobre qual plataforma você usa. libyaml. pyyaml.org/wiki/LibYAML não é um pacote python puro, pode causar uma instalação diferente.
Larry Cai

Respostas:


568

Você pode tentar o recurso de pesquisa no pip,

$ pip search yaml

que procura pacotes no PyPI com yaml na breve descrição. Isso revela vários pacotes, incluindo PyYaml, yamltools e PySyck, entre outros (Observe que os documentos do PySyck recomendam o uso do PyYaml, pois o syck está desatualizado). Agora você sabe um nome de pacote específico, você pode instalá-lo:

$ pip install pyyaml

Se você deseja instalar em todo o sistema python yaml no Linux, você também pode usar um gerenciador de pacotes, como aptitudeou yum:

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

9
O nome do pacote PyYAML pelo menos no Fedora 21 e CentOS 7 simplesmente PyYAMLnão é python-yaml.
TNT

3
O PyYAML implementa a antiga especificação YAML 1.1 de 2004 (Syck a especificação 1.0 ainda mais antiga). agora o ruamel.yaml é o pacote não desatualizado que implementa a especificação YAML1.2
Anthon

E se eu estiver em um sistema sem pip nem gerenciador de pacotes?
FirefoxMetzger

11
@FirefoxMetzger, você pode obter python , obter pip , criar LibYAML a partir do código-fonte e finalmente instalar o PyYAML . Libyaml não é estritamente necessário como PyYAML irá trabalhar com python puro (embora mais lento)
tutuDajuju

muito obrigado, sua resposta resolveu minha pergunta inteiramente.
wolfog


49

Atualização: Atualmente a instalação é feita com o pip, mas o libyaml ainda é necessário para criar a extensão C (no mac):

brew install libyaml
python -m pip install pyyaml

Método desatualizado :

Para o MacOSX (independentes), o seguinte parece funcionar:

brew install libyaml
sudo python -m easy_install pyyaml

6
Esta é a única resposta funcional para o OS X Yosemite quando tentei.
Nima

11
Isso funcionou para mim no Yosemite, mas apenas com o python 2.7.9 do brew, não com o OS X python 2.7.6.
David Moles

Esta foi a única resposta útil para o OS X Lion quando tentei. Muito obrigado! Eu pensei que não estava funcionando porque eu estava usando um sistema operacional 2011 em 2020.
TheTechRobo36414519

20
pip install PyYAML

Se o libyaml não for encontrado ou compilado, o PyYAML poderá ficar sem ele no Mavericks.


No Ubuntu 14.04 LTS, recebi o erro libyaml is not found or a compiler error: forcing --without-libyamlao usar sudo pip install PyYAML. O que devo fazer? Obrigado.
Hbxin

11
No entanto, eu disse Successfully installed PyYAML. Veja pip-PyYAML para informações completas. Obrigado novamente.
hengxin

14

Existem três pacotes compatíveis com YAML. Syck ( pip install syck) que implementa a especificação YAML 1.0 de 2002; PyYAML ( pip install pyyaml) que segue a especificação YAML 1.1 de 2004; e ruamel.yaml, que segue a especificação mais recente (YAML 1.2, de 2009).

Você pode instalar o pacote compatível com YAML 1.2 com pip install ruamel.yaml ou se estiver executando uma versão moderna do Debian / Ubuntu (ou derivado) com:

sudo apt-get install python-ruamel.yaml

6

Sistemas baseados em Debian:

$ sudo aptitude install python-yaml

ou mais recente para python3

$ sudo aptitude install python3-yaml


5

O seguinte comando será baixado pyyaml, o que também incluiyaml

pip install pyYaml

3

"Deve haver uma - e preferencialmente apenas uma - maneira óbvia de fazer isso". Então, deixe-me adicionar outro. Este é mais como "instalar a partir de fontes" para Debian / Ubuntu, em https://github.com/yaml/pyyaml

Instale o libYAML e seus cabeçalhos:

sudo apt-get install libyaml-dev

Faça o download das fontes pyyaml:

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

Instale a partir de fontes (não se esqueça de ativar seu 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 foi o único método que me levou a instalar corretamente os CLoaders no MacOS. Eu já tentei brew install libyaml & pip install pyyaml, mas python -c 'from yaml import CSafeLoader'falhava
Luis Meraz

1

Use strictyaml vez

Se você tiver o luxo de criar o arquivo yaml por conta própria ou se não precisar de nenhum desses recursos do yaml comum, recomendo usar em strictyamlvez do padrãopyyaml pacote .

Em resumo, o yaml padrão tem algumas falhas sérias em termos de segurança, interface e previsibilidade. strictyamlé um subconjunto da especificação yaml que não possui esses problemas (e é melhor documentado).

Você pode ler mais sobre os problemas com o yaml regular aqui

PARECER: strictyaml deve ser a implementação padrão do yaml e a especificação antiga do yaml deve ser obsoleta.


0

Para mim, a instalação da versão de desenvolvimento do libyaml fez isso.

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

Por favor, inclua explicações de que é a instalação do sistema em Python, a arquitetura x86-64 de tha, que deve haver um comando semelhante para o APT ...
George Sovetov

11
@GeorgeSovetov Concluído
Jaiswal

@MayankJaiswal Como você instalaria a versão de desenvolvimento para Python 3?
13008 Amir
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.