ChatGPT解决这个技术问题 Extra ChatGPT

如何为 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)

添加有关您使用哪个平台的信息。库。 pyyaml.org/wiki/LibYAML 不是纯python包,可能会导致安装不同。
对于其他任何混淆命名的人,pip install pyyaml 在您的实际脚本中导入为 import yaml

w
wim

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

$ pip search yaml

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

$ pip install pyyaml

如果您想在 linux 系统范围内安装 python yaml,您还可以使用包管理器,例如 aptitudeyum

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

PyYAML 包的名称至少在 Fedora 21 和 CentOS 7 上只是 PyYAML 而不是 python-yaml
PyYAML 实现了 2004 年的旧 YAML 1.1 规范(Syck 甚至更早的 1.0 规范)。 ruamel.yaml 现在是实现 YAML1.2 规范的非过时包
那么如果我在一个既没有 pip 也没有包管理器的系统上怎么办?
@FirefoxMetzger,您可以get pythonget pipbuild LibYAML from source,最后是 install PyYAML。 LibYAML 不是严格要求的,因为 PyYAML 将与纯 python 一起使用(尽管速度较慢)
@phil294 你是对的 - 真可惜。当我在 2013 年写这个答案时,PyPI 中的 yaml 大约有 10 个结果;今天有 >4500; > 750 匹配“pyyaml”。在对 how does pip search work 的评论中,我们发现 pip 仅返回前 100 个结果,这是由于 PyPI api。但这只是对问题的解释,而不是解决选择合适包装问题的方法。会很高兴提出要纳入答案的建议
C
Community

pip install pyyaml

如果您没有 pip,请运行 easy_install pip 安装 pip,这是首选软件包安装程序 - Why use pip over easy_install?。如果您更喜欢使用 easy_install,那么 easy_install pyyaml


t
tutuDajuju

如果适用于 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

这是我尝试时 OS X Yosemite 的唯一有效答案。
这在 Yosemite 上对我有用,但仅适用于 brew 的 python 2.7.9,而不是 OS X python 2.7.6。
这是我尝试时 OS X Lion 的唯一有效答案。非常感谢!我认为它不起作用,因为我在 2020 年使用的是 2011 年的操作系统。
w
wim
pip install PyYAML

如果未找到或编译 libyaml,PyYAML 可以在 Mavericks 上不使用它。


在 Ubuntu 14.04 LTS 上,使用 sudo pip install PyYAML 时出现错误 libyaml is not found or a compiler error: forcing --without-libyaml。我应该怎么办?谢谢。
但是,我说的是Successfully installed PyYAML。有关完整信息,请参阅 pip-PyYAML。再次感谢。
A
Anthon

有三个支持 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

S
Skandix

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

pip install pyYaml

h
hbadger

基于 Debian 的系统:

$ sudo aptitude install python-yaml

或更新的python3

$ sudo aptitude install python3-yaml


h
harperville

“应该有一种——最好只有一种——明显的方法来做到这一点。”所以让我再添加一个。这个更像是 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 

这是让我在 MacOS 上正确安装 CLoaders 的唯一方法。我之前尝试过 brew install libyaml & pip install pyyaml,但 python -c 'from yaml import CSafeLoader' 一直失败
C
Connor

考虑改用 strictyaml

如果您有幸自己创建 yaml 文件,或者您不需要常规 yaml 的 any of these features,我建议使用 strictyaml 而不是标准的 pyyaml 包。

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

您可以阅读有关 problems with regular yaml here 的更多信息

意见: strictyaml 应该是 yaml 的默认实现,并且应该废弃旧的 yaml 规范。


M
Mayank Jaiswal

对我来说,安装 libyaml 的开发版本就可以了。

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

请包括解释它是系统范围的 Python 安装,它的 x86-64 架构,应该有类似的命令用于 APT...
@GeorgeSovetov 完成
@MayankJaiswal 您将如何安装 Python 3 的开发版本?
G
Gurshan Sekhon

输入 pip3 install yaml 或类似 Connor pip3 install strictyaml


欢迎来到 StackOverflow!你不应该回答老问题,特别是如果他们已经有 10 个答案并且已经很老了,除非你有一些重要的东西要添加,这里似乎不是这种情况。提供新问题的答案,这样您还可以对帖子发表评论(一旦您有足够的声誉)
抱歉,我刚开始在 Stackoverflow 上提问
别担心,二月份的时候我就在你现在的位置……需要一些时间来适应这个系统,但你可以从中受益很多:)