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

У меня есть программа 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)


person harperville    schedule 10.01.2013    source источник
comment
добавьте информацию о том, какую платформу вы используете. либямл. pyyaml.org/wiki/LibYAML не является чистым пакетом Python, это может вызвать другую установку.   -  person Larry Cai    schedule 31.07.2013


Ответы (11)


Вы можете попробовать функцию поиска в 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
person Bonlenfum    schedule 10.01.2013
comment
Имя пакета PyYAML по крайней мере в Fedora 21 и CentOS 7 просто PyYAML, а не python-yaml. - person TNT; 27.03.2015
comment
PyYAML реализует старую спецификацию YAML 1.1 с 2004 года (Syck - еще более старую спецификацию 1.0). ruamel.yaml теперь является устаревшим пакетом, который реализует спецификацию YAML1.2. - person Anthon; 30.03.2016
comment
Так что, если я нахожусь в системе, в которой нет ни pip, ни диспетчера пакетов? - person FirefoxMetzger; 27.04.2017
comment
@FirefoxMetzger вы можете получить python, получить pip, построить LibYAML из исходного кода и, наконец, установить PyYAML. LibYAML не требуется строго, поскольку PyYAML будет работать с чистым питоном (хотя и медленнее). - person tutuDajuju; 05.05.2017
comment
Большое спасибо, ваш ответ полностью решил мой вопрос. - person wolfog; 08.05.2018
comment
Мне пришлось установить его в масштабе всей системы, используя apt. С pip не работало - person Kaymaz; 31.05.2018
comment
Ты учишь ловить рыбу, а не раздавать :) Спасибо! - person hopflink; 18.09.2018
comment
pip search yaml выводит 102 строки, ни одна из которых фактически не включает pyyaml имя пакета, хотя pip install pyyaml работает. Прохождение всех этих строк потребовало бы в 50 раз больше времени, чем поиск pip install yaml в Google. Это не ваша вина, но, к сожалению, сегодня вам в 99% случаев лучше обратиться к поисковой системе в Интернете, а не использовать намеченные инструменты поиска (также относится, например, к man). Спасибо, что показали, как это сделать. - person phil294; 21.06.2020
comment
@ phil294 ты прав - обидно. Когда я писал этот ответ в 2013 году, в PyPI было около 10 результатов для yaml; сегодня их ›4500; ›750 матчей за пямл. В комментариях к как работает pip search, мы обнаруживаем, что pip возвращает только первые 100 результатов из-за API PyPI. Но это объяснение проблемы, а не способ, к сожалению, решить проблему выбора подходящего пакета. Буду рад предложениям о том, что включить в ответ - person Bonlenfum; 22.06.2020

pip install pyyaml

Если у вас нет pip, запустите easy_install pip, чтобы установить pip, который является установщиком пакетов - Зачем использовать pip вместо easy_install?. Если вы предпочитаете использовать easy_install, тогда easy_install pyyaml

person harperville    schedule 10.01.2013

Обновление: в настоящее время установка выполняется с помощью pip, но libyaml по-прежнему требуется для создания расширения C (на Mac):

brew install libyaml
python -m pip install pyyaml

Устаревший метод:

Для MacOSX (индивидуалистов), похоже, работает следующее:

brew install libyaml
sudo python -m easy_install pyyaml
person tutuDajuju    schedule 23.01.2014
comment
Это единственный рабочий ответ для OS X Yosemite, когда я пробовал. - person Nima; 17.01.2015
comment
Это сработало для меня в Yosemite, но только с питоном brew 2.7.9, а не с Python 2.7.6 для OS X. - person David Moles; 26.05.2015
comment
Когда я попробовал, это был единственный рабочий ответ для OS X Lion. Огромное спасибо! Я думал, что это не работает, потому что я использовал операционную систему 2011 года в 2020 году. - person TheTechRobo36414519; 23.05.2020

pip install PyYAML

Если libyaml не найден или скомпилирован, PyYAML может обойтись без него на Mavericks.

person bbaassssiiee    schedule 12.05.2014
comment
В Ubuntu 14.04 LTS я получал ошибку libyaml is not found or a compiler error: forcing --without-libyaml при использовании sudo pip install PyYAML. Что я должен делать? Спасибо. - person hengxin; 23.07.2014
comment
Однако я сказал Successfully installed PyYAML. См. pip-PyYAML для получения полной информации. Спасибо еще раз. - person hengxin; 23.07.2014

Есть три пакета с поддержкой YAML. Syck (pip install syck), реализующий спецификацию YAML 1.0 с 2002 года; PyYAML (pip install pyyaml), который следует спецификации YAML 1.1 от 2004 г .; и ruamel.yaml, который соответствует последней спецификации (YAML 1.2, с 2009 г.).

Вы можете установить пакет, совместимый с YAML 1.2, с помощью pip install ruamel.yaml или, если вы используете современную версию Debian / Ubuntu (или производную), с помощью:

sudo apt-get install python-ruamel.yaml
person Anthon    schedule 30.03.2016

Системы на основе Debian:

$ sudo aptitude install python-yaml

или новее для python3

$ sudo aptitude install python3-yaml

person hbadger    schedule 12.08.2016

следующая команда загрузит pyyaml, который также включает yaml

pip install pyYaml
person Ankit Shukla    schedule 19.02.2019

«Должен быть один - и желательно только один - очевидный способ сделать это». Итак, позвольте мне добавить еще один. Это больше похоже на «установку из исходников» для 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

Установить из исходников (не забудьте активировать 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 
person Sergey Belash    schedule 24.07.2018
comment
Это был единственный метод, который привел меня к правильной установке CLoaders на MacOS. Раньше я пробовал brew install libyaml & pip install pyyaml, но python -c 'from yaml import CSafeLoader' продолжал терпеть неудачу - person Luis Meraz; 06.10.2019

Вместо этого используйте strictyaml

Если у вас есть возможность создать файл yaml самостоятельно или если вам не нужны какие-либо из этих функций обычного yaml, я рекомендую использовать strictyaml вместо стандартного pyyaml пакета.

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

Вы можете узнать больше о проблемах с обычным yaml здесь

МНЕНИЕ: strictyaml должен быть реализацией yaml по умолчанию, а старая спецификация yaml должна быть устаревшей.

person Connor    schedule 28.05.2019

Для меня это сделала установка разрабатываемой версии libyaml.

yum install libyaml-devel         #centos
apt-get install libyaml-dev       # ubuntu
person Mayank Jaiswal    schedule 18.01.2018
comment
Пожалуйста, включите объяснения, что это общесистемная установка Python, это архитектура x86-64, что должна быть аналогичная команда для APT ... - person George Sovetov; 18.01.2018
comment
@GeorgeSovetov Готово - person Mayank Jaiswal; 18.01.2018
comment
@MayankJaiswal Как бы вы установили разрабатываемую версию для Python 3? - person Amir; 13.02.2018

Введите pip3 install yaml или как Connor pip3 install strictyaml

person Gurshan Sekhon    schedule 14.09.2020
comment
Добро пожаловать в StackOverflow! Вы не должны отвечать на старые вопросы, особенно если на них уже есть 10 ответов и они довольно старые, если у вас нет чего-то важного, что можно добавить, что, похоже, здесь не так. Предоставляйте ответы на новые вопросы, чтобы вы также могли комментировать сообщения (если у вас будет достаточная репутация). - person finnmglas; 15.09.2020
comment
Извините, я впервые спрашиваю о Stackoverflow - person Gurshan Sekhon; 15.09.2020
comment
Не волнуйтесь, в феврале я был именно там, где вы сейчас ... нужно некоторое время, чтобы привыкнуть к системе, но вы можете получить от этого много пользы :) - person finnmglas; 15.09.2020