问题:如何安装适用于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)
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)
回答 0
您可以尝试点子搜索功能,
$ pip search yaml
它在简短说明中使用yaml在PyPI中查找软件包。这揭示了各种软件包,包括PyYaml,yamltools和PySyck等(请注意,PySyck文档建议使用PyYaml,因为syck已过时)。现在您知道了特定的软件包名称,可以安装它:
$ pip install pyyaml
如果要在linux系统范围内安装python yaml,也可以使用软件包管理器,例如aptitude
或yum
:
$ sudo apt-get install python-yaml
$ sudo yum install python-yaml
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
回答 1
pip install pyyaml
如果没有pip,请运行easy_install pip
安装pip,这是必备的软件包安装程序- 为什么在easy_install上使用pip?。如果您喜欢坚持使用easy_install,则easy_install pyyaml
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
回答 2
更新:如今,安装已通过pip完成,但仍需要libyaml来构建C扩展(在Mac上):
brew install libyaml
python -m pip install pyyaml
过时的方法:
对于MacOSX(小牛),以下方法似乎有效:
brew install libyaml
sudo python -m easy_install pyyaml
Update: Nowadays installing is done with pip, but libyaml is still required to build the C extension (on mac):
brew install libyaml
python -m pip install pyyaml
Outdated method:
For MacOSX (mavericks), the following seems to work:
brew install libyaml
sudo python -m easy_install pyyaml
回答 3
pip install PyYAML
如果找不到libyaml或编译的PyYAML可以在Mavericks上不使用它。
pip install PyYAML
If libyaml is not found or compiled PyYAML can do without it on Mavericks.
回答 4
有三个支持YAML的软件包。Syck(pip install syck
),从2002年开始实施YAML 1.0规范;pip install pyyaml
遵循2004年的YAML 1.1规范的PyYAML();和ruamel.yaml下面的最新(YAML 1.2,从2009年)规范。
您可以使用以下命令安装YAML 1.2兼容软件包,pip install ruamel.yaml
或者如果您正在运行Debian / Ubuntu(或衍生版本)的现代版本,则可以使用:
sudo apt-get install python-ruamel.yaml
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
回答 5
基于Debian的系统:
$ sudo aptitude install python-yaml
或更高版本的python3
$ sudo aptitude install python3-yaml
Debian-based systems:
$ sudo aptitude install python-yaml
or newer for python3
$ sudo aptitude install python3-yaml
回答 6
以下命令将下载pyyaml
,其中还包括yaml
pip install pyYaml
following command will download pyyaml
, which also includes yaml
pip install pyYaml
回答 7
“应该有一种-最好只有一种-显而易见的方法。” 因此,我再添加一个。这更像是Debian / Ubuntu的“从源代码安装”,来自https://github.com/yaml/pyyaml
安装libYAML及其标头:
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
“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
回答 8
如果您可以自行创建yaml文件,或者不需要常规yaml的任何这些功能,则建议使用strictyaml
而不是标准pyyaml
软件包。
简而言之,默认yaml在安全性,接口和可预测性方面存在一些严重缺陷。strictyaml
是yaml规范的一个子集,没有这些问题(并且有更好的记录)。
您可以在这里阅读更多有关常规Yaml问题的信息
意见: strictyaml
应为yaml的默认实现,而旧的yaml规范应作废。
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.
回答 9
对我来说,安装libyaml的开发版本即可。
yum install libyaml-devel #centos
apt-get install libyaml-dev # ubuntu
For me, installing development version of libyaml did it.
yum install libyaml-devel #centos
apt-get install libyaml-dev # ubuntu