【问题标题】:PyYAML: how to specify an include directory?PyYAML:如何指定包含目录?
【发布时间】:2016-04-09 14:51:14
【问题描述】:

我构建 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?

【问题讨论】:

    标签: python yaml pyyaml libyaml


    【解决方案1】:

    (更新)根据下面dotslash的评论,编辑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找到。

    希望这会有所帮助。

    【讨论】:

    • 嗯,看起来 PyYAML setup.py 没有配置命令。否则这正是我所需要的!
    • 我认为您应该在该文件夹中创建一个文件 setup.cfg,如果它不存在的话。更多信息here
    • 完美,我将此添加到您的答案中并接受了它。
    【解决方案2】:

    根据dotslash的评论,编辑setup.cfg并添加这两行使一切顺利:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-26
      • 2023-03-14
      • 2020-03-12
      • 1970-01-01
      • 1970-01-01
      • 2021-10-30
      相关资源
      最近更新 更多