【问题标题】:Error when install pylibmc using pip使用 pip 安装 pylibmc 时出错
【发布时间】:2013-01-26 00:48:09
【问题描述】:

您好,当我尝试使用 pip 在 OSX Lion 上安装 pylibmc 时,我收到以下错误:

./_pylibmcmodule.h:42:10: fatal error: 'libmemcached/memcached.h' file not found

#include <libmemcached/memcached.h>

         ^

1 error generated.

error: command 'clang' failed with exit status 1

关于如何解决这个问题的任何线索?

【问题讨论】:

  • 你是否在任何地方安装了 libmemcached 头文件?
  • 谢谢,我在安装运行 djangoproject 测试的要求时遇到了这个错误。在这里发布它,以便如果新的贡献者以某种方式遇到这个问题并到达这里,他们可以自信地依赖解决方案brew install libmemcached

标签: python memcached osx-lion libmemcached


【解决方案1】:

libmemcached 也可以使用Homebrew 安装。

brew install libmemcached

之后,pip install pylibmc 为我工作,无需指定任何其他参数。

【讨论】:

  • 我使用自制软件安装了它,并且链接正确,尽管 pylibmc 无法找到它。所以我必须在安装pylibmc时通过运行sudo pip install pylibmc --install-option="--with-libmemcached=/usr/local/Cellar/libmemcached/1.0.18/"来指向libmemcached目录
  • 你可以试试brew unlink libmemcached,然后brew link libmemcached。就我而言,链接搞砸了。这应该创建链接,使得/usr/local/include/libmemcached/memcached.h 存在。
  • 这些解决方案对我不起作用。我不得不export CPPFLAGS="-I/usr/local/include"export LDFLAGS="-L/usr/local/lib"
  • brew unlink libmemcached 然后brew link memcached 为我工作!谢谢@Neil
  • 默认值在某些时候发生了变化,您需要确保设置了 CFLAGS/LDFLAGS。最好的方法是使用pkg-config(如果没有,则使用brew install pkg-config),以便将当前安装的版本用于包含和库文件:CFLAGS=$(pkg-config --cflags libmemcached) LDFLAGS=$(pkg-config --libs libmemcached) pip install pylibmc
【解决方案2】:

它在 libmemcached 包中。使用 macports 安装它:

sudo port install libmemcached

那么,假设您使用的是 pip:

pip install pylibmc --install-option="--with-libmemcached=/opt/local"

LIBMEMCACHED=/opt/local pip install pylibmc

pylibmc docs 中所述。

【讨论】:

  • 工作,但我必须在 pip 之前添加一个“sudo”
【解决方案3】:

我通过检查 memcached 的安装位置解决了这个问题

$ which memcached
/usr/local/bin/memcached

然后在 pip install 之前设置 LIBMEMCACHED 环境变量:

$ export LIBMEMCACHED=/usr/local
$ pip install pylibmc

【讨论】:

  • 顺便说一下,我有 OS X El Capitan。
  • 这是 El Capitan 的开启
  • 在 macOS Sierra 上为我工作^^
  • 在 macOS Mojave,python3.7 上为我工作
【解决方案4】:

针对 Ubuntu 用户的回答:

sudo apt install libmemcached-dev zlib1g-dev

【讨论】:

  • 帮我修好了!验证于18.0.4 lts
【解决方案5】:

我有同样的问题,因为我安装了 MEMCACHED 而不是 LIBMEMCACHED,所以,解决:

brew uninstall memcached #to remove wrong package

brew install libmemcached #install correct lib

pip install pylibmc

它对我有用!

:)

【讨论】:

  • Brew 拒绝卸载 memcached,因为 libmemcached 是已安装的依赖项;所以我希望你实际上所做的是重新安装memcached
【解决方案6】:

对于那些在 Fedora 上找到这个答案的人:

sudo yum install libmemcached-devel

【讨论】:

    【解决方案7】:

    我通过从端口安装 memcached 解决了这个问题

    你应该从http://www.macports.org/安装第一个macports

    然后运行这个命令

    sudo port install memcached
    

    然后从 pypi http://pypi.python.org/pypi/pylibmc 下载 pylibmc 然后解压 .tar.gz 文件

    python setup.py install --with-libmemcached=/opt/local
    

    【讨论】:

      【解决方案8】:

      这段代码对我有用

        sudo apt-get install libmemcached-dev zlib1g-dev
      
        LIBMEMCACHED=/opt/local pip install pylibmc
      

      【讨论】:

        【解决方案9】:

        在 macOS High Sierra 中遇到同样的错误,Python3.6 与 brew 一起安装。我的解决方案是导出这些标志,在此评论中提到:Error when install pylibmc using pip

        export LDFLAGS="-L/usr/local/lib"
        export CPPFLAGS="-I/usr/local/include"
        

        之后,pip install 运行正常。

        【讨论】:

          【解决方案10】:

          有时需要安装 X-Code 命令行工具。

           xcode-select -p
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2014-05-20
            • 1970-01-01
            • 1970-01-01
            • 2015-10-08
            • 2021-01-23
            • 2019-06-14
            • 2017-12-22
            相关资源
            最近更新 更多