ChatGPT解决这个技术问题 Extra ChatGPT

How do I install the yaml package for Python?

I have a Python program that uses YAML. I attempted to install it on a new server using pip install yaml and it returns the following:

$ 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

How do I install the yaml package for Python? I'm running Python 2.7. (OS: Debian Wheezy)

add information on which platform do you use. libyaml. pyyaml.org/wiki/LibYAML is not pure python package, it may cause different installation.
For anyone else on the confusion of naming, pip install pyyaml imports as import yaml inside your actual script.

w
wim

You could try the search feature in pip,

$ pip search yaml

which looks for packages in PyPI with yaml in the short description. That reveals various packages, including PyYaml, yamltools, and PySyck, among others (Note that PySyck docs recommend using PyYaml, since syck is out of date). Now you know a specific package name, you can install it:

$ pip install pyyaml

If you want to install python yaml system-wide in linux, you can also use a package manager, like aptitude or yum:

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

The name of the PyYAML package at least on Fedora 21 and CentOS 7 is just PyYAML not python-yaml.
PyYAML implements the old YAML 1.1 spec from 2004 (Syck the even older 1.0 spec). ruamel.yaml is now the non-out-of-date package that implements the YAML1.2 specification
So what if I am on a system with neither pip nor a package manager?
@FirefoxMetzger you can get python, get pip, build LibYAML from source, and finally install PyYAML. LibYAML is not strictly required as PyYAML will work with pure python (albeit slower)
@phil294 you are right - it is a shame. When I wrote this answer in 2013, there were about 10 results for yaml in PyPI; today there are >4500; >750 matches for "pyyaml". In the comments to how does pip search work, we find that pip only returns the first 100 results, due to the PyPI api. But that is an explanation for the problem, not a method to solve the issue of selecting an appropriate package sadly. Would be v happy for suggestions of what to incorporate in the answer
C
Community

pip install pyyaml

If you don't have pip, run easy_install pip to install pip, which is the go-to package installer - Why use pip over easy_install?. If you prefer to stick with easy_install, then easy_install pyyaml


t
tutuDajuju

This answers if for MacOS

Update: Nowadays installing is done with pip, and for many users a wheel may be available (depending on your Mac and required version of PyYaml). In some cases libyaml is still required to build the C extension (on mac); this can be done with:

brew install libyaml
python -m pip install pyyaml

Outdated method:

For MacOSX (mavericks), the following works:

brew install libyaml
sudo python -m easy_install pyyaml

This is the only working answer for OS X Yosemite when I tried.
This worked for me on Yosemite, but only with brew's python 2.7.9, not OS X python 2.7.6.
This was the only working answer for OS X Lion when I tried. Thanks so much! I thought it wasn't working because I was using a 2011 operating system in 2020.
w
wim
pip install PyYAML

If libyaml is not found or compiled PyYAML can do without it on Mavericks.


On Ubuntu 14.04 LTS, I got the error libyaml is not found or a compiler error: forcing --without-libyaml when using sudo pip install PyYAML. What should I do? Thanks.
However, I said Successfully installed PyYAML. See pip-PyYAML for complete information. Thanks again.
A
Anthon

There are three YAML capable packages. Syck (pip install syck) which implements the YAML 1.0 specification from 2002; PyYAML (pip install pyyaml) which follows the YAML 1.1 specification from 2004; and ruamel.yaml which follows the latest (YAML 1.2, from 2009) specification.

You can install the YAML 1.2 compatible package with pip install ruamel.yaml or if you are running a modern version of Debian/Ubuntu (or derivative) with:

sudo apt-get install python-ruamel.yaml

S
Skandix

following command will download pyyaml, which also includes yaml

pip install pyYaml

h
hbadger

Debian-based systems:

$ sudo aptitude install python-yaml

or newer for python3

$ sudo aptitude install python3-yaml


h
harperville

"There should be one -- and preferably only one -- obvious way to do it." So let me add another one. This one is more like "install from sources" for Debian/Ubuntu, from https://github.com/yaml/pyyaml

Install the libYAML and it's headers:

sudo apt-get install libyaml-dev

Download the pyyaml sources:

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

Install from sources, (don't forget to activate your 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 

This was the only method that led me to correctly install the CLoaders on MacOS. I previously tried brew install libyaml & pip install pyyaml but, python -c 'from yaml import CSafeLoader' kept failing
C
Connor

Consider using strictyaml instead

If you have the luxury of creating the yaml file yourself, or if you don't require any of these features of regular yaml, I recommend using strictyaml instead of the standard pyyaml package.

In short, default yaml has some serious flaws in terms of security, interface, and predictability. strictyaml is a subset of the yaml spec that does not have those issues (and is better documented).

You can read more about the problems with regular yaml here

OPINION: strictyaml should be the default implementation of yaml and the old yaml spec should be obsoleted.


M
Mayank Jaiswal

For me, installing development version of libyaml did it.

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

Please, include explanations that it's system-wide Python installation, tha tit's x86-64 architecture, that there should be similar command for APT...
@GeorgeSovetov Done
@MayankJaiswal How would you install the development version for Python 3?
G
Gurshan Sekhon

Type in pip3 install yaml or like Connor pip3 install strictyaml


Welcome to StackOverflow! You shouldn't answer old questions, especially if they already have 10 answers and are pretty old, unless you have something important to add, which does not seem the case here. Provide answers to newer questions, that way you will also be able to comment on posts (once you have sufficient reputation)
Sorry, I'm new to asking on Stackoverflow
Don't worry, in February I was exactly where you are now... it takes some time to get used to the system but you can profit from it a lot : )