Как мне установить пакет 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, это может привести к другой установке.
Ларри Кай

Ответы:


570

Вы можете попробовать функцию поиска в пипсах,

$ 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

Так что, если я нахожусь в системе, где нет ни pip, ни менеджера пакетов?
FirefoxMetzger

1
@FirefoxMetzger вы можете получить Python , получить пипс , собрать LibYAML из исходного кода и, наконец, установить PyYAML . LibYAML не требуется строго, поскольку PyYAML будет работать с чистым питоном (хотя и медленнее)
tutuDajuju

Большое спасибо, ваш ответ полностью решил мой вопрос.
wolfog


49

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

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, но только с Python 2.7.9 от brew, а не с Python 2.7.6 OS X.
Дэвид Моулз

Это был единственный рабочий ответ для 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 года; и ruamel.yaml, который следует последней спецификации (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

Установите из источников (не забудьте активировать ваш 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 

1
Это был единственный метод, который заставил меня правильно установить CLoaders на MacOS. Я раньше пытался, brew install libyaml & pip install pyyamlно python -c 'from yaml import CSafeLoader'продолжал терпеть неудачу
Луис

1

Используйте strictyaml вместо этого

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

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

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

МНЕНИЕ: 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.