我有一个使用 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)
pip install pyyaml
在您的实际脚本中导入为 import yaml
。
你可以试试pip中的搜索功能,
$ pip search yaml
它在简短描述中使用 yaml 在 PyPI 中查找包。这揭示了各种包,包括 PyYaml、yamltools 和 PySyck 等(请注意,PySyck docs 建议使用 PyYaml,因为 syck 已过时)。现在你知道了一个特定的包名,你可以安装它:
$ pip install pyyaml
如果您想在 linux 系统范围内安装 python yaml,您还可以使用包管理器,例如 aptitude
或 yum
:
$ sudo apt-get install python-yaml
$ sudo yum install python-yaml
pip install pyyaml
如果您没有 pip,请运行 easy_install pip
安装 pip,这是首选软件包安装程序 - Why use pip over easy_install?。如果您更喜欢使用 easy_install,那么 easy_install pyyaml
如果适用于 MacOS,这将回答
更新:现在安装是使用 pip 完成的,对于许多用户来说,a wheel 可能可用(取决于您的 Mac 和所需的 PyYaml 版本)。在某些情况下,仍然需要 libyaml 来构建 C 扩展(在 mac 上);这可以通过以下方式完成:
brew install libyaml
python -m pip install pyyaml
过时的方法:
对于 MacOSX(小牛),以下工作:
brew install libyaml
sudo python -m easy_install pyyaml
pip install PyYAML
如果未找到或编译 libyaml,PyYAML 可以在 Mavericks 上不使用它。
sudo pip install PyYAML
时出现错误 libyaml is not found or a compiler error: forcing --without-libyaml
。我应该怎么办?谢谢。
Successfully installed PyYAML
。有关完整信息,请参阅 pip-PyYAML。再次感谢。
有三个支持 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
以下命令将下载 pyyaml
,其中还包括 yaml
pip install pyYaml
基于 Debian 的系统:
$ sudo aptitude install python-yaml
或更新的python3
$ sudo aptitude install python3-yaml
“应该有一种——最好只有一种——明显的方法来做到这一点。”所以让我再添加一个。这个更像是 Debian/Ubuntu 的“从源代码安装”,来自 https://github.com/yaml/pyyaml
安装 libYAML 及其标头:
sudo apt-get install libyaml-dev
Download 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
brew install libyaml & pip install pyyaml
,但 python -c 'from yaml import CSafeLoader'
一直失败
考虑改用 strictyaml
如果您有幸自己创建 yaml 文件,或者您不需要常规 yaml 的 any of these features,我建议使用 strictyaml
而不是标准的 pyyaml
包。
简而言之,默认的 yaml 在安全性、接口和可预测性方面存在一些严重缺陷。 strictyaml
是 yaml 规范的一个子集,没有这些问题(并且有更好的文档记录)。
您可以阅读有关 problems with regular yaml here 的更多信息
意见: strictyaml
应该是 yaml 的默认实现,并且应该废弃旧的 yaml 规范。
对我来说,安装 libyaml 的开发版本就可以了。
yum install libyaml-devel #centos
apt-get install libyaml-dev # ubuntu
输入 pip3 install yaml 或类似 Connor pip3 install strictyaml
不定期副业成功案例分享
PyYAML
而不是python-yaml
。yaml
大约有 10 个结果;今天有 >4500; > 750 匹配“pyyaml”。在对 how does pip search work 的评论中,我们发现 pip 仅返回前 100 个结果,这是由于 PyPI api。但这只是对问题的解释,而不是解决选择合适包装问题的方法。会很高兴提出要纳入答案的建议