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

18 投票
3 回答
30331 浏览
提问于 2025-04-18 13:36

我想在我的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

注意,错误信息里说“成功安装”,但实际上并没有成功。我无法import yaml

我不想要那种建议,比如“用apt-get”的答案,因为我在第一句话里已经说明了。我需要这个安装是跨平台的,并且能作为pip的依赖项工作,我并不是单纯想知道怎么正确安装它。

如果这不可能,有没有什么库可以替代它?

3 个回答

-3

虚拟环境设置

Python version: 3.6.3
Operating system: Windows, 64 Bits

我在安装Keras的时候遇到了问题,因为pyyaml的设置不支持Python 3.6。之前我在另一个虚拟环境中已经安装了Anaconda,并且Keras运行得很好(pyyaml模块也安装好了)。这次我直接用conda来安装pyyaml,而不是用pip,结果安装成功了。然后我就可以在我的新虚拟环境中用pip install keras来安装Keras库。

如果你已经安装了Anaconda,可以试试用

conda install yaml

看看能不能解决问题。对我来说,这个方法有效!

0

根据Salem的回答,我成功在Python 3.8中安装了带有libyaml绑定的PyYAML,具体步骤如下:

sudo apt-get install libyaml-dev libpython3.8-dev
pip install pyyaml --global-option=--with-libyaml

如果不加上--global-option=--with-libyaml这个选项,它就不会找到绑定,这样CSafeLoader和CSafeDumper这两个类就无法使用了。

27

你需要一些额外的软件包来构建它。

首先,你需要卸载 pyyaml,否则它会在后面提示你已经安装过了。

pip uninstall pyyaml

然后安装以下软件包:

sudo apt-get install libyaml-dev libpython2.7-dev

最后再安装一次。

pip install pyyaml

撰写回答