如何安装Python的yaml包?

我有一个使用YAML的Python程序。我尝试使用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

如何安装Python的yaml包?我运行的是Python 2.7。(操作系统:Debian Wheezy)

855534 次浏览

pip install pyyaml

如果你没有pip,运行easy_install pip来安装pip,这是包安装程序——为什么使用pip而不是easy_install?。如果您更喜欢使用easy_install,则使用easy_install pyyaml

你可以试试pip的搜索功能,

$ pip search yaml

它在简短的描述中查找PyPI中带有yaml的包。这将显示各种包,包括PyYaml、yamltools和PySyck等(注意,PySyck文档建议使用PyYaml,因为syck已经过时)。现在你知道了一个特定的包名,你可以安装它:

$ pip install pyyaml

如果你想在linux系统范围内安装python yaml,你也可以使用包管理器,比如aptitudeyum:

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

对于MacOS,这个答案是if

更新:现在安装是用pip完成的,对许多用户来说一个轮子可能是可用的(取决于你的Mac和所需的PyYaml版本)。在某些情况下,libyaml仍然需要构建C扩展(在mac上);这可以用:

brew install libyaml
python -m pip install pyyaml

过时的方法:

对于MacOSX (mavericks),以下工作:

brew install libyaml
sudo python -m easy_install pyyaml
pip install PyYAML

如果没有找到或编译利比亚aml, PyYAML可以在Mavericks上没有它。

有三个支持YAML的包。Syck (pip install syck)实现了2002年的YAML 1.0规范;PyYAML (pip install pyyaml),它遵循2004年的YAML 1.1规范;和ruamel.yaml,它遵循最新的(YAML 1.2,从2009年开始)规范。

你可以使用pip install ruamel.yaml安装YAML 1.2兼容包,或者如果你正在运行现代版本的Debian/Ubuntu(或衍生版本),可以使用:

sudo apt-get install python-ruamel.yaml

Debian-based系统:

$ sudo aptitude install python-yaml

或者python3的更新版本

$ sudo aptitude install python3-yaml

对我来说,安装开发版的利比亚就做到了。

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

“应该有一种——最好只有一种——明显的方法来做到这一点。”我再加一个。这个更像是Debian/Ubuntu的“install from sources”,from https://github.com/yaml/pyyaml

安装利比亚aml和它的头文件:

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

下面的命令将下载pyyaml,其中还包括yaml

pip install pyYaml

可以考虑改用strictyaml

如果你可以自己创建yaml文件,或者你不需要常规yaml的这些特性,我建议使用strictyaml而不是标准的pyyaml包。

简而言之,默认yaml在安全性、接口和可预测性方面存在一些严重缺陷。strictyaml是yaml规范的一个子集,它不存在这些问题(并且有更好的文档)。

你可以阅读更多关于这里是常规yaml的问题

意见: strictyaml应该是yaml的默认实现,旧的yaml规范应该被淘汰。

输入pip3 install yaml或像Connor那样输入pip3 install strictyaml

虚拟环境中的👇️或使用Python 2

PIP安装pyyaml

👇️for python 3(也可能是pip3.10,取决于你的版本)

Pip3安装pyyaml

👇️如果你得到权限错误

Sudo pip3安装pyyaml

👇️如果你的PATH环境变量中没有pip

Python -m PIP安装pyyaml

👇️for python 3(也可能是pip3.10,取决于你的版本)

Python3 -m PIP安装pyyaml

👇️为水蟒

Conda install -c Conda -forge pyyaml