Python 使用pip安装pylibmc时出错

Python 使用pip安装pylibmc时出错,python,memcached,osx-lion,libmemcached,Python,Memcached,Osx Lion,Libmemcached,您好,当我尝试使用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 /\

您好,当我尝试使用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
/\u pylibmcmodule.h:42:10:致命错误:“未找到libmemcached/memcached.h”文件
#包括
^
生成1个错误。
错误:命令“clang”失败,退出状态为1

关于如何解决这个问题有什么线索吗?

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

您应该从安装第一个macports

然后运行这个命令

sudo port install memcached
然后从pypi下载pylibmc 然后提取.tar.gz文件

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

它在libmemcached包中。要使用macports进行安装,请执行以下操作:

sudo端口安装libmemcached

然后,假设您正在使用pip:

pip install pylibmc--install option=“--with libmemcached=/opt/local”

LIBMEMCACHED=/opt/local pip安装pylibmc


如。

中所述,libmemcached也可以使用安装


在此之后,
pip install pylibmc
对我有效,无需指定任何其他参数。

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

brew uninstall memcached #to remove wrong package

brew install libmemcached #install correct lib

pip install pylibmc
这对我有用


:)

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


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

 xcode-select -p

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

$ which memcached
/usr/local/bin/memcached
然后在pip安装之前设置LIBMEMCACHED环境变量:

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

这个代码是为我工作的

  sudo apt-get install libmemcached-dev zlib1g-dev

  LIBMEMCACHED=/opt/local pip install pylibmc

与brew一起安装的macOS High Sierra、Python3.6出现相同错误。我的解决方案是导出这些标志,在这篇评论中提到:


之后,
pip安装
运行正常。

回答Ubuntu用户:

sudo apt install libmemcached-dev zlib1g-dev

您是否在任何地方安装了libmemcached头文件?谢谢,我在安装运行djangoproject测试的需求时遇到了这个错误。将其发布到此处,以便如果新的贡献者以某种方式面临此问题并到达此处,他们可以自信地依赖解决方案
brew install libmemcached
我使用自制软件安装了它,并且它被正确链接,尽管pylibmc无法找到它。因此,在安装pylibmc时,我必须通过运行
sudo pip install pylibmc--install option=“--with libmemcached=/usr/local/ceral/libmemcached/1.0.18/”
指向libmemcached目录,您可以尝试
brew取消libmemcached的链接
,然后
brew link libmemcached
。在我的情况下,链接是混乱的。这将创建链接,使
/usr/local/include/libmemcached/memcached.h
存在。这些解决方案对我不起作用。我必须
export-CPPFLAGS=“-I/usr/local/include”
export-LDFLAGS=“-L/usr/local/lib”
brew取消libmemcached的链接
然后
brew link memcached
对我有效!谢谢@Neil,默认值在某个时候已经更改,您需要确保设置了CFLAGS/LDFLAGS。最好的方法是使用
pkg-config
brew-install-pkg-config
,如果您没有),因此当前安装的版本用于include&library文件:
CFLAGS=$(pkg-config--CFLAGS-libmemcached)LDFLAGS=$(pkg-config--libs-libmemcached)pip-install-pylibmc
,但是我必须在Pips之前准备一个‘sudo’顺便说一句,我有OS X El Capitan。这是在macOS Sierra上为El Capitan为我工作的版本^^在macOS Mojave上为我工作的版本,python3.7Brew拒绝卸载memcached,因为libmemcached是一个已安装的依赖项;所以我希望你实际做的是重新安装
memcached
。为我修复它!在
18.0.4 lts上验证
export LDFLAGS="-L/usr/local/lib"
export CPPFLAGS="-I/usr/local/include"
sudo apt install libmemcached-dev zlib1g-dev