PyYAML:如何指定包含目录?

时间:2016-01-05 17:14:48

标签: python yaml pyyaml libyaml

我构建了libyaml并将其安装到本地区域:

yaml-0.1.5 $ ./configure --prefix=/usr/local/sqlminus
yaml-0.1.5 $ make install

yaml-0.1.5 $ ls -l /usr/local/sqlminus/include/yaml.h
-rw-r--r--@ 1 mh admin 54225 Jan 5 09:05 /usr/local/sqlminus/include/yaml.h

但是当我构建PyYAML时,它找不到yaml.h。

PyYAML-3.11 $ /usr/local/sqlminus/bin/python setup.py build

checking if libyaml is compilable
gcc -fno-strict-aliasing -g -O2 -DNDEBUG -g -fwrapv -O3 -Wall 
    -Wstrict-prototypes -I/usr/local/sqlminus/include/python2.7
-c build/temp.macosx-10.4-x86_64-2.7/check_libyaml.c
-o build/temp.macosx-10.4-x86_64-2.7/check_libyaml.o
build/temp.macosx-10.4-x86_64-2.7/check_libyaml.c:2:10:
fatal error: 'yaml.h'
      file not found
#include <yaml.h>
         ^
1 error generated.

我怎样才能告诉PyYAML我在哪里安装了libyaml?

2 个答案:

答案 0 :(得分:2)

(更新)根据下面的dotlash评论,编辑setup.cfg并添加这两行,使一切顺利进行。

include_dirs=/usr/local/sqlminus/include
library_dirs=/usr/local/sqlminus/lib

(结束更新)

我认为你应该安装依赖项。

如果您使用的是基于Ubuntu或Debian的系统,则可以通过此搜索

apt-cache search libyaml

然后你可能会发现有一些相关的包。

我建议你尝试安装:apt-get install libyaml-dev -y

如果您使用的是Mac OS,则可以更改文件check_libyaml.c中的来源,告诉它 yaml.h 的绝对路径是什么。

或者只是在编译时指定路径

python setup.py config --with-includepath=/path/to/your/install/of/python/includes/

然后去编译。

可以找到更多信息here

希望这会有所帮助。

答案 1 :(得分:0)

根据dotlash的评论,编辑Long并添加这两行使一切顺利进行:

updateDocument()