大的情况是,我想用nginx,uWGI和Python 3(virtualenv)启动一些项目的Ubuntu服务器。
我确实按照可以在各个地方find的build议。 当尝试使用sudo pip install uwsgi
安装uwsgi来安装uWSGI时,我确实观察到以下错误:
plugins/python/uwsgi_python.h:2:20: fatal error: Python.h: No such file or directory
我从2012年9月就已经find了[JFSebastian的评论] [1],其中关于$ sudo apt-get install python2.7-dev
的必要性 – 它是针对Python 2.7的。 所以,我做了类似的Python 3.4(似乎成功)。 不过,我仍然观察错误。
当试图searchPython.h
,我可以find:
$ locate Python.h /usr/include/python3.4m/Python.h
还应该设置什么来使uWSGI安装? (即使我在中年以前和Unix一起工作,我对Ubuntu Linux还是比较陌生的)
更新:
遵循下面的评论jwalker的build议,我做了pip install uwsgi
从激活的virtualenv pip install uwsgi
没有sudo
。 但是,然后安装程序不能创buildvenv目录中的子目录(如build
)。 我试图chmod go+w
gov 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
安装Python 3:
sudo apt-get install python3
安装Python 3头文件以从源代码构建uWSGI:
sudo apt-get install python3-dev
在当前目录的venv
创建一个Python 3 virtualenv(如果当前目录有特权,用sudo
预先安装命令):
virtualenv -p python3 venv
激活venv作为pip
的目标( .
是source
的快捷方式):
. venv/bin/activate
最后,安装uWSGI(如果在特权目录中,则再次安装sudo
):
pip install uwsgi
你有没有为uwsgi安装正确的python插件?
http://packages.ubuntu.com/precise/uwsgi-plugin-python3
然后在配置文件(你的.ini文件)把python3作为插件,而不是像这样的python :
[uwsgi] plugins = python3 # Rest of your configuration...