Python 使用pip安装pyyaml/将pyyaml添加为pip依赖项

Python 使用pip安装pyyaml/将pyyaml添加为pip依赖项,python,pip,yaml,Python,Pip,Yaml,我想在我的pip项目中使用PyYaml,但在将其用作依赖项时遇到了困难。 主要问题是pip中的PyYaml不是跨平台安装 如何使用pip安装pyyaml以使其正常工作。注意,在当前的新Ubuntu安装中,我在运行pip install pyyaml Installing collected packages: pyyaml Running setup.py install for pyyaml checking if libyaml is compilable gcc -pt

我想在我的pip项目中使用PyYaml,但在将其用作依赖项时遇到了困难。 主要问题是pip中的PyYaml不是跨平台安装

如何使用pip安装pyyaml以使其正常工作。注意,在当前的新Ubuntu安装中,我在运行
pip install pyyaml

Installing collected packages: pyyaml
  Running setup.py install for pyyaml
    checking if libyaml is compilable
    gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -g -fstack-protector --param=ssp-buffer-size=4 -Wformat -Wformat-security -Werror=format-security -fPIC -I/usr/include/python3.2mu -c build/temp.linux-x86_64-3.2/check_libyaml.c -o build/temp.linux-x86_64-3.2/check_libyaml.o
    build/temp.linux-x86_64-3.2/check_libyaml.c:2:18: fatal error: yaml.h: No such file or directory
    compilation terminated.

    libyaml is not found or a compiler error: forcing --without-libyaml
    (if libyaml is installed correctly, you may need to
     specify the option --include-dirs or uncomment and
     modify the parameter include_dirs in setup.cfg)

Successfully installed pyyaml
请注意,错误显示“已成功安装”,但不是。 我无法
导入yaml

Installing collected packages: pyyaml
  Running setup.py install for pyyaml
    checking if libyaml is compilable
    gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -g -fstack-protector --param=ssp-buffer-size=4 -Wformat -Wformat-security -Werror=format-security -fPIC -I/usr/include/python3.2mu -c build/temp.linux-x86_64-3.2/check_libyaml.c -o build/temp.linux-x86_64-3.2/check_libyaml.o
    build/temp.linux-x86_64-3.2/check_libyaml.c:2:18: fatal error: yaml.h: No such file or directory
    compilation terminated.

    libyaml is not found or a compiler error: forcing --without-libyaml
    (if libyaml is installed correctly, you may need to
     specify the option --include-dirs or uncomment and
     modify the parameter include_dirs in setup.cfg)

Successfully installed pyyaml
由于我的第一句话,我不是在寻找说“使用apt-get”的答案我需要跨平台安装并作为pip依赖项工作我不只是想知道如何正确安装它


如果这是不可能的,是否有任何库可以替代使用?

您将需要一些额外的包来构建它

首先,您需要卸载
pyyaml
,否则它稍后会抱怨它已经安装

pip uninstall pyyaml
然后安装以下软件包:

sudo apt-get install libyaml-dev libpython2.7-dev
最后再安装一次

pip install pyyaml
虚拟环境设置

Keras没有安装,因为pyyaml设置没有满足Python3.6的要求。 我已经在另一个virtualenv中安装了Anaconda,keras工作正常(安装了pyyaml模块)。我只是使用conda install pyyaml而不是pip,它被安装了,因此使用
pip install keras
在我的新虚拟环境中安装keras库

如果已经安装了anaconda,请尝试使用

康达安装yaml


看看它是否有效。这对我有用

以Salem的回答为指导,我能够通过以下操作在Python 3.8中安装带有libyaml绑定的PyYAML:

sudo apt get安装libyaml dev libpython3.8-dev
pip安装pyyaml--global选项=--with libyaml

如果不指定
--global option=--with libyaml
选项,它将不会拾取绑定,从而使CSafeLoader和CSafeDumper类无法访问。

libpython是ubuntuNope上Python2.7的默认选项,pyyaml不需要libyaml dev才能工作。如果安装了它,pyyaml可以将其用作更高效的实现,但这不是必需的。对于我来说,pip安装pyyaml不需要外部的东西,同样的错误也可以正常工作。我需要安装作为一个pip依赖项和跨平台。如果不清楚的话,我很抱歉,我已经编辑了我的问题。@Salem:太好了!谢谢[[before]]python-m timeit-s'import yaml;y=open(“config.yml”,“r”).read()“”yaml.load(y)==>100个循环,每个循环最好3:5.63毫秒[[after]]python-m timeit-s'导入yaml;y=open(“config.yml”,“r”).read()''yaml.load(y,Loader=yaml.CLoader)==>1000个循环,每个循环最好使用3:505个usec注意,在执行最后一次
pip安装时,您可能必须使用
--no cache dir
,以强制
pip
重新运行安装程序,而不是使用缓存。请尝试在virtualenv中安装,
virtualenv pyenv&&。pyenv/bin/activate&&pip安装pyyaml&&python-c'import yaml'
是否有效?@spinus可用于python3,但不适用于python2.7For me也可用于python2.7。很奇怪,我不知道怎么了。我知道你写的是新鲜的ubuntu,但它真的那么新鲜吗?没有其他的想法,什么是错误的。@spinus好的,我不确定。我刚刚在AWS中生成了一个新实例来测试它,pyyaml显然是一个默认库。不知道为什么我第一次没有。因此,问题似乎是个性化的。(可能会删除此问题)如何安装
pip
?它没有安装在新的Ubuntu安装AFAIK上