Instalar uwsgi 1.2.5 a través de pip


22

Bienvenido,

Actualmente estoy tratando de instalar el último uwsgi en mi VPS (Ubuntu 11.10) según las instrucciones del sitio http://projects.unbit.it/uwsgi/wiki/Quickstart

pip install uwsgi

Durante la compilación veo algunos errores:

...
[gcc -pthread] spooler.o
*** uWSGI compiling embedded plugins ***
[gcc -pthread] plugins/python/python_plugin.o
Complete output from command /usr/bin/python -c "import setuptools;__file__='/etc/apt/sources.list.d/build/uwsgi/setup.py';exec(compile(open(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --single-version-externally-managed --record /tmp/pip-joud1I-record/install-record.txt:
running install

In file included from plugins/python/python_plugin.c:1:0:

plugins/python/uwsgi_python.h:2:20: fatal error: Python.h: No such file or directory

compilation terminated.

using profile: buildconf/default.ini

detected include path: ['/usr/lib/gcc/i686-linux-gnu/4.6.1/include','/usr/local/include', '/usr/lib/gcc/i686-linux-gnu/4.6.1/include-fixed', '/usr/include/i386-linux-gnu', '/usr/include']

Patching "bin_name" to properly install_scripts dir
...

Y finalmente veo:

...

[gcc -pthread] spooler.o

*** uWSGI compiling embedded plugins ***

[gcc -pthread] plugins/python/python_plugin.o

----------------------------------------
Command /usr/bin/python -c "import setuptools;__file__='/etc/apt/sources.list.d/build/uwsgi/setup.py';exec(compile(open(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --single-version-externally-managed --record /tmp/pip-joud1I-record/install-record.txt failed with error code 1 in /etc/apt/sources.list.d/build/uwsgi
Storing complete log in /root/.pip/pip.log

¿Alguien tiene alguna sugerencia de cómo puedo instalar el último uwsgi?

Saludos, Grzegorz


1
Lo que resultó después de seguir todos los consejos anteriores es que en lugar de ejecutar pip3 install uwsgi, debería ejecutar el comando como root: sudo pip3 install uwsgi
tomekwi

Respuestas:


38

plugins / python / uwsgi_python.h: 2: 20: error fatal: Python.h: No existe tal archivo o directorio

Para compilar extensiones C para Python necesita archivos de desarrollo de Python:

$ sudo apt-get install python2.7-dev

@JFSebastian: Por favor, eche un vistazo al askubuntu.com/q/499206/306605 relacionado . Gracias.
pepr


Tuve el mismo error en Debian Wheezy con Python 3.4, esto ayudó, ¡gracias!
fnkr

a python2.7-devinstalado y todavía veo el error
yentsun

1

Solo estará aquí en caso de que alguien más se encuentre con este problema: a pesar de que instalamos python2.7-dev con éxito, todavía recibimos este error.

Lo que aparentemente fue el problema fue la incapacidad de gcc para encontrar las bibliotecas que se incluyeron en el script de compilación que el pip intentaba ejecutar.

en realidad terminamos obteniendo el zip de pip uwsgi: https://pypi.python.org/packages/source/u/uWSGI/uwsgi-1.9.20.tar.gz

y luego cambiándolo manualmente como en los siguientes pasos:

Primero, lo descomprimimos:

$ tar xvzf uwsgi-1.9.20.tar.gz

Ellos, editamos el archivo uwsgiconfig.py, reemplazando la línea 213:

cmdline = "%s -c %s -o %s %s" % (GCC, cflags, objfile, srcfile)

a:

cmdline = "%s -I/usr/include/libxml2 -c %s -o %s %s" % (GCC, cflags, objfile, srcfile)

Básicamente, informar a gcc que sus bibliotecas están en /usr/include/libxml2(este fue nuestro caso al menos)

Después de eso, volvimos a comprimir la carpeta:

$ tar cvf uwsgi-1.9.20.tar uwsgi-1.9.20/

$ gzip uwsgi-1.9.20.tar

Y pip usado con ese gzip:

$ sudo pip install uwsgi-1.9.20.tar.gz

Y eso funcionó ...

Espero que ayude a alguien!


su instalación de gcc se rompe si no puede encontrar los encabezados que se instalan a través de paquetes estándar
jfs

0

Para instalar bajo Cygwin vía pip, necesita los siguientes paquetes:

  • gcc-core
  • gcc-g ++ (probablemente)
  • libcrypt-devel
  • libintl-devel
  • python3
  • python3-devel
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.