我有一个使用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)


当前回答

可以考虑改用strictyaml

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

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

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

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

其他回答

可以考虑改用strictyaml

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

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

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

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

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

pip install pyYaml

“应该有一种——最好只有一种——明显的方法来做到这一点。”我再加一个。这个更像是Debian/Ubuntu的“从源代码安装”,来自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 

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

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

Debian-based系统:

$ sudo aptitude安装python-yaml

或者python3的更新版本

$ sudo aptitude安装python3-yaml