无法在Python 3.4(路径?)的Ubuntu 14.04上安装uWSGI

pep*_*epr 9 ubuntu install uwsgi python-3.x

总体而言,我希望Ubuntu服务器使用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
Run Code Online (Sandbox Code Playgroud)

我确实从2012年9月找到了[JFSebastian的评论] [1]关于它的必要性$ sudo apt-get install python2.7-dev- 它适用于Python 2.7.所以,我做了类似的Python 3.4(似乎成功).但是,我仍然观察到错误.

在尝试搜索时Python.h,我可以找到:

$ locate Python.h
/usr/include/python3.4m/Python.h
Run Code Online (Sandbox Code Playgroud)

我还应该设置什么才能安装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
Run Code Online (Sandbox Code Playgroud)

jwa*_*ker 20

安装Python 3:

sudo apt-get install python3
Run Code Online (Sandbox Code Playgroud)

安装Python 3标头以从源代码构建uWSGI:

sudo apt-get install python3-dev
Run Code Online (Sandbox Code Playgroud)

venv当前dir的子目录中创建Python 3 virtualenv (sudo如果当前dir具有特权,则在命令前添加):

virtualenv -p python3 venv
Run Code Online (Sandbox Code Playgroud)

激活venv作为目标pip(.是一个快捷方式source):

. venv/bin/activate
Run Code Online (Sandbox Code Playgroud)

最后,安装uWSGI(再次,sudo如果在特权目录中):

pip install uwsgi
Run Code Online (Sandbox Code Playgroud)


dan*_*ius 6

你为uwsgi安装了正确的python插件吗?

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

然后在config(你的.ini文件)中将python3作为插件而不是像这样的python:

[uwsgi]
plugins         = python3

# Rest of your configuration...
Run Code Online (Sandbox Code Playgroud)