Comment puis-je installer la bibliothèque Python 'gevent" sur Mac OS X Lion
Bibliothèque Python gevent
, version 0.13.6 (la version actuelle sur PyPI) ne sera pas pip install
sur OS X Lion, Python 2.7 (et probablement d'autres). Il fonctionne très bien sur Snow Leopard.
Comment puis-je obtenir cette bibliothèque installée?
Points de Bonus si cela peut être fait en utilisant pip install
, plutôt que d'un manuel ou un processus personnalisé, parce que là, on va jouer gentiment avec automatisation des builds.
Voici mon pip install
de sortie:
pip install gevent
Downloading/unpacking gevent
Running setup.py egg_info for package gevent
Requirement already satisfied (use --upgrade to upgrade): greenlet in ./tl_env/lib/python2.7/site-packages (from gevent)
Installing collected packages: gevent
Running setup.py install for gevent
building 'gevent.core' extension
gcc-4.2 -fno-strict-aliasing -fno-common -dynamic -isysroot /Developer/SDKs/MacOSX10.6.sdk -arch i386 -arch x86_64 -g -O2 -DNDEBUG -g -O3 -I/Library/Frameworks/Python.framework/Versions/2.7/include/python2.7 -c gevent/core.c -o build/temp.macosx-10.6-intel-2.7/gevent/core.o
In file included from gevent/core.c:225:
gevent/libevent.h:9:19: error: event.h: No such file or directory
gevent/libevent.h:38:20: error: evhttp.h: No such file or directory
gevent/libevent.h:39:19: error: evdns.h: No such file or directory
gevent/core.c:361: error: field ‘ev’ has incomplete type
gevent/core.c:741: warning: parameter names (without types) in function declaration
gevent/core.c: In function ‘__pyx_f_6gevent_4core___event_handler’:
gevent/core.c:1619: error: ‘EV_READ’ undeclared (first use in this function)
gevent/core.c:1619: error: (Each undeclared identifier is reported only once
gevent/core.c:15376: warning: assignment makes pointer from integer without a cast
[... about 1000 more lines of compiler errors...]
gevent/core.c:15385: error: dereferencing pointer to incomplete type
gevent/core.c: In function ‘__pyx_pf_6gevent_4core_4http___init__’:
gevent/core.c:15559: warning: assignment makes pointer from integer without a cast
gevent/core.c: At top level:
gevent/core.c:21272: error: expected ‘)’ before ‘val’
lipo: can't figure out the architecture type of: /var/folders/s5/t94kn0p10hdgxzx9_9sprpg40000gq/T//cczk54q7.out
error: command 'gcc-4.2' failed with exit status 1
Complete output from command /Users/jacob/code/toplevel/tl_env/bin/python -c "import setuptools;__file__='/Users/jacob/code/toplevel/tl_env/build/gevent/setup.py';exec(compile(open(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --single-version-externally-managed --record /var/folders/s5/t94kn0p10hdgxzx9_9sprpg40000gq/T/pip-s2hPd3-record/install-record.txt --install-headers /Users/jacob/code/toplevel/tl_env/bin/../include/site/python2.7:
running install
running build
running build_py
running build_ext
building 'gevent.core' extension
gcc-4.2 -fno-strict-aliasing -fno-common -dynamic -isysroot /Developer/SDKs/MacOSX10.6.sdk -arch i386 -arch x86_64 -g -O2 -DNDEBUG -g -O3 -I/Library/Frameworks/Python.framework/Versions/2.7/include/python2.7 -c gevent/core.c -o build/temp.macosx-10.6-intel-2.7/gevent/core.o
- pypi.python.org/packages/source/g/gevent/gevent-0.13.6.tar.gz le télécharger ici. et de l'installer à l'aide de sudo python setup.py installez -I /opt/local/include -L /opt/local/lib. En supposant que vous avez installé libevent via Macports atleast.
- La fermeture de ce que "pas une vraie question" est extraordinairement peu serviable. Il pourrait ne pas répondre à certains des critères abstraits de "réalisme", mais d'être en mesure de trouver cette page et de lire les fourni des réponses juste m'a sauvé tout un tas de temps.
- La nouvelle version de gevent, actuellement 1.0 bêta, est disponible sur google code, et ne s'appuie plus sur libevent. Il s'installe très bien sur mac OSX, bien que, vous devez télécharger le sdist et l'installer manuellement, car il n'est pas sur PyPI encore.
- Je sais que c'est un vieux post, mais j'ai aussi trouvé stackoverflow.com/questions/32417141/... utile pour les problèmes d'installation gevent sur OSX 10.10.5. Plus précisément, en utilisant
CFLAGS='-std=c99' pip install gevent
va utiliser une ancienne, compatible compilateur. La nouvelle question n'est pas un double de soi, mais je ne veux pas les gens à perdre autant de temps que je n'ai chasser sans rapport avec les solutions.
Vous devez vous connecter pour publier un commentaire.
Ne pas publier la totalité de la chose! C'est beaucoup trop! 90% du temps, la première erreur est assez...
Cela signifie que la bibliothèque qui fournit le
event.h
en-tête n'est pas installé. La bibliothèque est appelée libevent (site web).En général, les erreurs de compilation comme celles-ci sont d'une faille de sécurité dans les scripts de construction. Le script de construction doit donner un message d'erreur libevent est pas installé, et c'est un bug qu'il ne le fait pas.
Pour obtenir libevent de MacPorts et puis manuellement dire compilateur avec
CFLAGS
variable d'environnement où trouverevent.h
etlibevent
lors de l'exécution du pip.Vous pouvez également utiliser homebrew pour l'installation de libevent :
brew install libevent
(de David Wolever commentaire)
brew install libevent
-L
drapeau, donc je pense que vous obtiendrez une erreur de lien.CFLAGS="-I /opt/local/include -L /opt/local/lib"
sur LionCFLAGS="-I/opt/local/include -L/opt/local/lib" pip install gevent
. Notez qu'il n'y a pas d'espace après -L et-I.Voir dans: Ne pouvez pas installer gevent OS x 10.11
sur OS X 10.11, clang utilise c11 comme valeur par défaut, donc il suffit de tourner le dos à c99.
Après un certain temps, j'ai réalisé que les chemins d'accès pour la variable CFLAGS mentionné ci-dessus fonctionne lors de l'installation de libevent de port, mais pas à partir de l'infusion. Le suivant a fonctionné pour moi (sur OSX Mavericks):
C'est la façon que j'ai trouvée la plus facile:
installer libevent à l'aide de homebrew
installer gevent
C'était la seule façon que je pouvais le faire fonctionner.
Trouvé cette réponse lors de la recherche pour aider à l'installation sur Snow Leopard, ce détachement dans le cas où quelqu'un vient de cette façon, avec le même problème.
J'avais libevent installé via macports.
export CFLAGS=-I/opt/local/include
l'exportation LDFLAGS=-L/opt/local/lib
sudo pip install gevent
J'avais libevent installé via le brassage et elle a manqué trop, ce qui a fonctionné a été similaire à ce que Stephen fait, mais pointant vers infusion d'installation par défaut:
CFLAGS=-I/usr/local/include LDFLAGS=-L/usr/local/lib pip install gevent
Dans le cas où vous installer tous des sources et de l'utilisation csh, les travaux suivants sur mac os 10.9
télécharger la dernière version stable http://libevent.org/ libevent-2.0.21-stable
virtualenv env
source env/bin/activate.csh
setenv CFLAGS "-I /usr/local/include -L /usr/local/lib"
pip install gevent
- Je utiliser virtualenv et virtualenv wrapper, et donc, je voulais que cela soit autonome. J'ai eu gevent de travail comme suit:
En supposant que vous avez virtuel env de configuration, puis:
Ensuite télécharger libevent et l'installer contre le virtualenv.
Je suis en supposant que vous avez gcc 5+ installé (j'utilise brew)
Espère que cette aide.
Je suis sous MacOs High Sierra (10.13.3)
D'abord j'ai fait :
brew install libevent
J'ai mis à jour mon pip version de pip-18.0.
ensuite essayé d'installer à nouveau avec les éléments suivants :-
il a travaillé.