Встановіть uwsgi 1.2.5 через pip


22

Ласкаво просимо,

В даний час я намагаюся встановити останні мові uwsgi на свій VPS (Ubuntu 11.10) на основі інструкції з сайту http://projects.unbit.it/uwsgi/wiki/Quickstart

pip install uwsgi

Під час компіляції я бачу деякі помилки:

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

І нарешті я бачу:

...

[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

Хто-небудь пропонує, як я можу встановити останні uwsgi?

З повагою, Гжегож


1
Виявившись після дотримань усіх порад, наведених вище, це те, що замість запуску pip3 встановити uwsgi я повинен запустити команду як root: sudo pip3 встановити uwsgi
tomekwi

Відповіді:


38

плагіни / python / uwsgi_python.h: 2: 20: фатальна помилка: Python.h: Немає такого файлу чи каталогу

Для компіляції розширень C для Python потрібні файли розробки Python:

$ sudo apt-get install python2.7-dev

@JFSebastian: Перегляньте відповідні askubuntu.com/q/499206/306605 . Спасибі.
пепр

@JFSebastian: ... або stackoverflow.com/q/24822829/1346705
pepr

Була така ж помилка в Debian Wheezy з Python 3.4, це допомогло, дякую!
fnkr

a python2.7-devвстановили і досі бачать помилку
yentsun

1

Так буде і у випадку, якщо хтось інший стикається з цією проблемою - Хоча ми успішно встановили python2.7-dev, ми все-таки отримали цю помилку.

Проблема, очевидно, полягала в тому, що gcc не міг знайти бібліотеки, які були включені в скрипт збірки скриптів, який намагався запустити.

ми фактично отримали поштовий індекс uwsgi: https://pypi.python.org/packages/source/u/uWSGI/uwsgi-1.9.20.tar.gz

а потім змінити його вручну, як описано нижче:

Спочатку ми розпакували його:

$ tar xvzf uwsgi-1.9.20.tar.gz

Їм ми відредагували файл: uwsgiconfig.pyзамінивши рядок 213:

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

до:

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

В основному, повідомте gcc знати, що у вашій бібліотеці є /usr/include/libxml2(принаймні, це було у нас)

Після цього ми знову відкрили папку:

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

$ gzip uwsgi-1.9.20.tar

І використаний піп із цим gzip:

$ sudo pip install uwsgi-1.9.20.tar.gz

І це спрацювало ..

Сподіваюся, що хтось допомагає!


установка gcc буде порушена, якщо не вдасться знайти заголовки, встановлені за допомогою стандартних пакетів
jfs

0

Щоб встановити під Cygwin через pip, потрібні такі пакети:

  • gcc-core
  • gcc-g ++ (можливо)
  • libcrypt-devel
  • libintl-devel
  • python3
  • python3-devel
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.