Не удается установить uWSGI на Ubuntu 14.04 с Python 3.4 (пути?)

общая картина заключается в том, что я хочу, чтобы Ubuntu server с nginx, uWGI и Python 3 (virtualenv) начал какой-то проект.

я следовал рекомендациям, которые можно найти в разных местах. При попытке установить uWSGI с помощью sudo pip install uwsgi, Я наблюдаю следующую ошибку:

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

я нашел [комментарий Дж. Ф. Себастьяна][1] с сентября 2012 года о необходимости $ sudo apt-get install python2.7-dev -- это было для Python 2.7. Итак, я сделал подобное для Python 3.4 (кажется успешно.) Тем не менее, я все еще наблюдаю ошибку.

при попытке поиска Python.h, Я могу найти:

$ locate Python.h
/usr/include/python3.4m/Python.h

что еще я должен установить, чтобы установить uWSGI? (Я довольно новичок в Ubuntu Linux, хотя я работал с Unix далеко в среднем возрасте;)

обновление:

следуя совету jwalker из комментария ниже, я сделал pip install uwsgi изнутри активирован virtualenv и без sudo. Но потом установщик не может создавать подкаталоги (например,build) в каталоге venv. Я пытался chmod go+w для venv, но это не помогло. Я признаю, что ничего не знаю о virtualenv и pip, а также мои знания Unix немного ржавые:

  ...
  File "/var/www/hec_project/hec_venv/lib/python3.4/site-packages/pip/req.py", line 218, in build_location
    _make_build_dir(build_dir)
  File "/var/www/hec_project/hec_venv/lib/python3.4/site-packages/pip/req.py", line 1527, in _make_build_dir
    os.makedirs(build_dir)
  File "/var/www/hec_project/hec_venv/lib/python3.4/os.py", line 237, in makedirs
    mkdir(name, mode)
PermissionError: [Errno 13] Permission denied: '/var/www/hec_project/hec_venv/build'

Storing debug log for failure in /home/hecadmin/.pip/pip.log

2 ответов


Установить Python 3:

sudo apt-get install python3

установите заголовки Python 3 для создания uWSGI из источника:

sudo apt-get install python3-dev

создайте Python 3 virtualenv в venv subdir текущего dir (добавьте команду sudo если текущий dir является привилегированным):

virtualenv -p python3 venv

активировать venv, чтобы быть целью для pip (. ярлык для source):

. venv/bin/activate

наконец, установите uWSGI (опять же,sudo если в привилегированном реж):

pip install uwsgi

вы установили правильный плагин python для uwsgi?

http://packages.ubuntu.com/precise/uwsgi-plugin-python3

затем в config (ваш .ini файл) put питон3 как плагин вместо python такой:

[uwsgi]
plugins         = python3

# Rest of your configuration...