大致意思是我想要安装带有nginx、uWGI和Python 3(virtualenv)的Ubuntu服务器来开始一些项目。我已经按照各种地方的建议进行了尝试。当我尝试使用“sudo pip install uwsgi”安装uWSGI时,我遇到了以下错误信息:
我找到了2012年9月[J.F.Sebastian的评论][1],提到需要安装
当尝试搜索
[1]: https://dev59.com/2WjWa4cB1Zd3GeqPudSm#12583719
我应该设置什么才能安装uWSGI?(我对Ubuntu Linux相当新,尽管我在中年时期曾经使用过Unix ;)
plugins/python/uwsgi_python.h:2:20: fatal error: Python.h: No such file or directory
我找到了2012年9月[J.F.Sebastian的评论][1],提到需要安装
$ sudo apt-get install python2.7-dev
——这是针对Python 2.7的。所以,我也为Python 3.4 进行了类似操作(看起来成功了)。但是,我仍然遇到了错误。当尝试搜索
Python.h
时,我可以找到:[1]: https://dev59.com/2WjWa4cB1Zd3GeqPudSm#12583719
$ locate Python.h
/usr/include/python3.4m/Python.h
我应该设置什么才能安装uWSGI?(我对Ubuntu Linux相当新,尽管我在中年时期曾经使用过Unix ;)
更新:
根据下面评论中jwalker的建议,我在激活的虚拟环境内并且没有使用sudo
执行了pip install uwsgi
。但是安装程序无法在venv目录中创建子目录(如build
)。我尝试为venv使用chmod go+w
,但没有帮助。我承认我对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
sudo
,激活venv然后只需使用pip
。现在我不确定您遇到了什么问题,但这对我在Ubuntu 12.04上有效:sudo apt-get install python3
,sudo apt-get install python3-dev
,virtualenv -p python3 venv
,source venv/bin/activate
,pip install uwsgi
。 - jwalkersudo
来安装virtualenv
和pip
(因为它会使权限变得复杂)。但既然是这样,尝试同时对virtualenv
和pip
命令使用sudo
,并且可以保持activate
不变。总之,请尝试:sudo apt-get install python3
、sudo apt-get install python3-dev
、sudo virtualenv -p python3 venv
、source venv/bin/activate
、sudo pip install uwsgi
。 - jwalkersudo
所有命令。问题在于安装程序运行C/C++编译器,而似乎有些部分无法以此方式获得写入权限。 - pepr