使用pip安装pyyaml/将PyYaml添加为pip依赖项
我想在我的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