Не удается установить 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...