Як встановити пакет yaml для Python?


347

У мене програма Python, яка використовує YAML. Я спробував встановити його на новому сервері за допомогою, pip install yamlі він повертає наступне:

$ 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

Як встановити пакет yaml для Python? Я працюю на Python 2.7. (ОС: Debian Wheezy)


додайте інформацію, на якій платформі ви використовуєте. libyaml. pyyaml.org/wiki/LibYAML - не чистий пакунок python, він може спричинити іншу установку.
Ларрі Кай

Відповіді:


568

Ви можете спробувати функцію пошуку в pip,

$ pip search yaml

який шукає пакети в PyPI з yaml у короткому описі. Це виявляє різні пакети, включаючи PyYaml, yamltools та PySyck, серед інших (зауважте, що документи PySyck рекомендують використовувати PyYaml, оскільки syck застарів). Тепер ви знаєте конкретну назву пакета, можете встановити його:

$ pip install pyyaml

Якщо ви хочете встановити python yaml у всій системі в Linux, ви також можете використовувати менеджер пакунків, наприклад, aptitudeабо yum:

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

9
Назва пакету PyYAML принаймні на Fedora 21 та CentOS 7 просто PyYAMLні python-yaml.
ТНТ

3
PyYAML реалізує стару специфікацію YAML 1.1 з 2004 року (Syck ще старшу 1,0 специфікацію). ruamel.yaml тепер застарілий пакет, який реалізує специфікацію YAML1.2
Anthon

Що робити, якщо я перебуваю в системі, в якій немає ні піп, ні менеджера пакунків?
FirefoxMetzger

1
@FirefoxMetzger ви можете отримати python , отримати pip , створити LibYAML з джерела та нарешті встановити PyYAML . LibYAML не є строго необхідним, оскільки PyYAML працюватиме з чистим пітоном (хоча і повільніше)
tutuDajuju

велике спасибі, ваша відповідь повністю вирішила моє питання.
вовчак


49

Оновлення: В даний час установка виконується за допомогою pip, але для створення розширення C (на mac) все ще потрібно libyaml:

brew install libyaml
python -m pip install pyyaml

Застарілий метод :

Для MacOSX (mavericks), здається, працює наступне:

brew install libyaml
sudo python -m easy_install pyyaml

6
Це єдиний робочий відповідь для OS X Yosemite, коли я спробував.
Німа

1
Це працювало для мене на Yosemite, але тільки з brew's python 2.7.9, а не з OS X python 2.7.6.
Девід Молес

Це було єдиною робочою відповіддю для OS X Lion, коли я спробував. Дуже дякую! Я подумав, що це не працює, тому що я використовував операційну систему 2011 року в 2020 році.
TheTechRobo36414519

20
pip install PyYAML

Якщо libyaml не знайдено або компілюється, PyYAML може обійтися без нього на Mavericks.


У Ubuntu 14.04 LTS я отримав помилку libyaml is not found or a compiler error: forcing --without-libyamlпід час використання sudo pip install PyYAML. Що я повинен зробити? Дякую.
hengxin

1
Однак я сказав Successfully installed PyYAML. Для отримання повної інформації див. Pip-PyYAML . Знову дякую.
hengxin

14

Є три пакети, здатні YAML. Syck ( pip install syck), який реалізує специфікацію YAML 1.0 з 2002 року; PyYAML ( pip install pyyaml), який відповідає специфікації YAML 1.1 від 2004 року; і руамель.ямл який відповідає останнім специфікаціям (YAML 1.2, 2009).

Ви можете встановити сумісний пакет YAML 1.2 з pip install ruamel.yamlабо, якщо ви використовуєте сучасну версію Debian / Ubuntu (або похідну) за допомогою:

sudo apt-get install python-ruamel.yaml

6

Системи на базі Debian:

$ sudo aptitude install python-yaml

або новіший для python3

$ sudo aptitude install python3-yaml



3

"Має бути один - і бажано лише один - очевидний спосіб зробити це". Тож дозвольте додати ще одну. Це більше схоже на "встановити з джерел" для Debian / Ubuntu, з https://github.com/yaml/pyyaml

Встановіть libYAML та його заголовки:

sudo apt-get install libyaml-dev

Завантажте джерела pyyaml:

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

Встановіть із джерел (не забудьте активувати свій вентилятор):

. 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 

Це єдиний метод, який привів мене до правильної установки CLoaders на MacOS. Раніше я намагався, brew install libyaml & pip install pyyamlале python -c 'from yaml import CSafeLoader'не вдавався
Луїс

1

Використовуйте замість strictyaml

Якщо у вас є розкіш створити файл ямл самостійно або якщо вам не потрібна якась із цих функцій звичайного ямлу, рекомендую використовувати strictyamlзамість стандартного pyyamlпакету.

Коротше кажучи, yaml за замовчуванням має деякі серйозні недоліки щодо безпеки, інтерфейсу та передбачуваності. strictyaml- це підмножина специфікації ямла, яка не має цих питань (і їх краще документувати).

Детальніше про проблеми з регулярним ямлом ви можете прочитати тут

ДУМКА: strictyaml має бути впровадженням yaml за замовчуванням, а старі параметри yaml мають бути застарілими.


0

Для мене це зробила установка версії розробки libyaml.

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

Будь ласка, додайте пояснення, що це загальносистемна установка Python, архітектура x86-64, що має титул, що для APT повинна бути подібна команда ...
Георгій Совєтов

1
@GeorgeSovetov Готово
Mayank Jaiswal

@MayankJaiswal Як би ви встановили версію розробки для Python 3?
Амір
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.