Fehler bei der Installation von pylibmc mit pip

72

Hallo, wenn ich versuche, pylibmc unter OS mit Lion zu installieren, wird folgende Fehlermeldung angezeigt:

./_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

Irgendwelche Hinweise, wie man dieses Problem löst?

Harristrader
quelle
Haben Sie die libmemcached-Header irgendwo installiert?
Martijn Pieters
Vielen Dank, ich habe diesen Fehler bei der Installation der Anforderungen für die Ausführung der Tests von djangoproject festgestellt. Veröffentlichen Sie es hier, damit sich neue Mitwirkende, wenn sie sich diesem Problem stellen und hierher gelangen, sicher auf die Lösung verlassen könnenbrew install libmemcached
Deep

Antworten:

133

libmemcached kann auch mit Homebrew installiert werden .

brew install libmemcached

Danach pip install pylibmcarbeitete für mich, ohne zusätzliche Argumente angeben zu müssen.

Jeremy
quelle
27
Ich habe es mit Homebrew installiert und es war korrekt verknüpft, obwohl pylibmc es so oder so nicht finden konnte. Also musste ich auf das libmemcached-Verzeichnis verweisen, wenn ich pylibmc installierte, indem ichsudo pip install pylibmc --install-option="--with-libmemcached=/usr/local/Cellar/libmemcached/1.0.18/"
marcelosalloum
1
Sie können es brew unlink libmemcacheddann versuchen brew link libmemcached. In meinem Fall waren die Links durcheinander. Dadurch sollten vorhandene Links erstellt werden /usr/local/include/libmemcached/memcached.h.
Neil
5
Diese Lösungen haben bei mir nicht funktioniert. Ich musste export CPPFLAGS="-I/usr/local/include"undexport LDFLAGS="-L/usr/local/lib"
giles
brew unlink libmemcacheddann brew link memcachedarbeitete für mich! Dank @Neil
steve
Die Standardeinstellungen haben sich irgendwann geändert und Sie müssen sicherstellen, dass CFLAGS / LDFLAGS eingestellt sind. Der beste Weg, dies zu tun, ist zu verwenden pkg-config( brew install pkg-configwenn Sie es nicht haben), so dass die aktuell installierte Version für die Include- und Bibliotheksdateien verwendet wird: CFLAGS=$(pkg-config --cflags libmemcached) LDFLAGS=$(pkg-config --libs libmemcached) pip install pylibmc
Chris Adams
35

Es ist im libmemcached-Paket. So installieren Sie es mit Macports:

sudo port install libmemcached

Angenommen, Sie verwenden pip:

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

oder

LIBMEMCACHED=/opt/local pip install pylibmc

wie in den pylibmc-Dokumenten erklärt .

Mike Fogel
quelle
Gearbeitet, aber ich musste prepend ein ‚sudo‘ vor dem Pip
dan
33

Ich habe dieses Problem gelöst, indem ich überprüft habe, wo memcached installiert ist

$ which memcached
/usr/local/bin/memcached

und dann Festlegen der Umgebungsvariablen LIBMEMCACHED vor der Pip-Installation:

$ export LIBMEMCACHED=/usr/local
$ pip install pylibmc
Aidas Bendoraitis
quelle
Ich habe übrigens OS X El Capitan.
Aidas Bendoraitis
Dies ist die für El Capitan
Morgs32
1
Funktioniert für mich unter macOS Sierra ^^
Teddy Cross
Arbeitete für mich auf macOS Mojave, python3.7
Vivek
6

Ich habe das gleiche Problem, weil ich MEMCACHED und nicht LIBMEMCACHED installiert habe, um Folgendes zu beheben:

brew uninstall memcached #to remove wrong package

brew install libmemcached #install correct lib

pip install pylibmc

Es funktioniert für mich!

:)

Giuseppe Lopes
quelle
Brew lehnte es ab, memcached zu deinstallieren, da libmemcached eine installierte Abhängigkeit ist. Ich gehe davon aus, dass das, was Sie tatsächlich getan haben, neu installiert wird memcached.
John Mee
4

Für diejenigen, die diese Antwort auf Fedora finden:

sudo yum install libmemcached-devel

Jamie
quelle
4

Antwort für Ubuntu-Benutzer:

sudo apt install libmemcached-dev zlib1g-dev
flauschige
quelle
Für mich behoben! Verifiziert am18.0.4 lts
StephenBoesch
2

Ich habe dies behoben, indem ich memcached vom Port installiert habe

Sie sollten zuerst Macports von http://www.macports.org/ installieren.

Führen Sie dann diesen Befehl aus

sudo port install memcached

Laden Sie anschließend die Datei pylibmc von der Datei pypi http://pypi.python.org/pypi/pylibmc herunter und extrahieren Sie die .tar.gz-Datei

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

Dieser Code ist für mich gearbeitet

  sudo apt-get install libmemcached-dev zlib1g-dev

  LIBMEMCACHED=/opt/local pip install pylibmc
Sarath Ak
quelle
2

Treffen Sie den gleichen Fehler mit macOS High Sierra, Python3.6, das mit Brew installiert wurde. Die Lösung für mich bestand darin, diese Flags zu exportieren, die in diesem Kommentar erwähnt werden: Fehler bei der Installation von pylibmc mit pip

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

Danach pip installlaufen Sie gut.

Valtteri Luoma
quelle
0

Manchmal müssen die X-Code-Befehlszeilentools installiert werden.

 xcode-select -p
Zucken
quelle