Zainstaluj uwsgi 1.2.5 przez pip

22

Witamy,

Obecnie próbuję zainstalować najnowsze uwsgi na moim VPS (Ubuntu 11.10) na podstawie instrukcji ze strony http://projects.unbit.it/uwsgi/wiki/Quickstart

pip install uwsgi

Podczas kompilacji widzę kilka błędów:

...
[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
...

I wreszcie widzę:

...

[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

Czy ktoś ma jakieś sugestie, jak mogę zainstalować najnowsze uwsgi?

Pozdrawiam, Grzegorz

Grzegorz
źródło
1
Po wykonaniu wszystkich powyższych rad okazało się, że zamiast uruchamiać pip3 install uwsgi, powinienem uruchomić komendę jako root: sudo pip3 install uwsgi
tomekwi

Odpowiedzi:

38

plugins / python / uwsgi_python.h: 2: 20: fatal error: Python.h: Brak takiego pliku lub katalogu

Aby skompilować rozszerzenia C dla języka Python, potrzebujesz plików programistycznych w języku Python:

$ sudo apt-get install python2.7-dev
jfs
źródło
@JFSebastian: Proszę spojrzeć na powiązane askubuntu.com/q/499206/306605 . Dzięki.
pepr
@JFSebastian: ... lub stackoverflow.com/q/24822829/1346705
pepr
Miałem ten sam błąd w Debian Wheezy w Pythonie 3.4, to pomogło, dzięki!
fnkr
dysponowanie python2.7-devzainstalowane i nadal pojawia się błąd
yentsun
1

Tak też będzie tutaj, na wypadek, gdyby ktoś napotkał ten problem - mimo że pomyślnie zainstalowaliśmy python2.7-dev, nadal mamy ten błąd.

Tym, co najwyraźniej było problemem, była niemożność znalezienia przez gcc bibliotek, które były zawarte w skrypcie kompilacji, który pip próbował uruchomić.

faktycznie skończyło się na otrzymaniu paczki zip uwsgi: https://pypi.python.org/packages/source/u/uWSGI/uwsgi-1.9.20.tar.gz

a następnie zmieniając go ręcznie, wykonując następujące czynności -

Najpierw rozpakowaliśmy to:

$ tar xvzf uwsgi-1.9.20.tar.gz

Zmieniliśmy plik:, uwsgiconfig.pyzastępując wiersz 213:

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

do:

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

Zasadniczo, informowanie gcc, że twoje biblioteki są w /usr/include/libxml2(przynajmniej tak było w naszym przypadku)

Następnie zmieniliśmy folder:

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

$ gzip uwsgi-1.9.20.tar

I użyłem pip z tym gzipem:

$ sudo pip install uwsgi-1.9.20.tar.gz

I to zadziałało ..

Mam nadzieję, że komuś pomoże!

wilfo
źródło
instalacja gcc jest zepsuta, jeśli nie można znaleźć nagłówków zainstalowanych za pomocą standardowych pakietów
jfs
0

Aby zainstalować pod Cygwin za pośrednictwem pip, potrzebujesz następujących pakietów:

  • gcc-core
  • gcc-g ++ (prawdopodobnie)
  • libcrypt-devel
  • libintl-devel
  • python3
  • python3-devel
tivnet
źródło