通过 pip 安装 uwsgi 1.2.5

通过 pip 安装 uwsgi 1.2.5

欢迎,

目前,我正在尝试根据网站上的说明在我的 VPS(Ubuntu 11.10)上安装最新的 uwsgi http://projects.unbit.it/uwsgi/wiki/Quickstart

pip install uwsgi

在编译过程中我发现一些错误:

...
[gcc -pthread] spooler.o
*** uWSGI compiling embedded plugins ***
[gcc -pthread] plugins/python/python_plugin.o
Complete output from command /usr/bin/python -c "import setuptools;__file__='/etc/apt/sources.list.d/build/uwsgi/setup.py';exec(compile(open(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --single-version-externally-managed --record /tmp/pip-joud1I-record/install-record.txt:
running install

In file included from plugins/python/python_plugin.c:1:0:

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

compilation terminated.

using profile: buildconf/default.ini

detected include path: ['/usr/lib/gcc/i686-linux-gnu/4.6.1/include','/usr/local/include', '/usr/lib/gcc/i686-linux-gnu/4.6.1/include-fixed', '/usr/include/i386-linux-gnu', '/usr/include']

Patching "bin_name" to properly install_scripts dir
...

最后我看到了:

...

[gcc -pthread] spooler.o

*** uWSGI compiling embedded plugins ***

[gcc -pthread] plugins/python/python_plugin.o

----------------------------------------
Command /usr/bin/python -c "import setuptools;__file__='/etc/apt/sources.list.d/build/uwsgi/setup.py';exec(compile(open(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --single-version-externally-managed --record /tmp/pip-joud1I-record/install-record.txt failed with error code 1 in /etc/apt/sources.list.d/build/uwsgi
Storing complete log in /root/.pip/pip.log

有谁对我如何安装最新的 uwsgi 有什么建议吗?

问候,Grzegorz

答案1

plugins/python/uwsgi_python.h:2:20:致命错误:Python.h:没有这样的文件或目录

要为 Python 编译 C 扩展,您需要 Python 开发文件:

$ sudo apt-get install python2.7-dev

答案2

如果其他人遇到此问题,请在此处进行说明:

即使我们已经成功安装了 python2.7-dev,但仍然出现此错误。

显然,问题是 gcc 无法找到 pip 尝试运行的构建脚本中包含的库。

我们实际上最终得到了 uwsgi pip zip:

然后按照以下步骤手动更改它。

首先,我们解压缩它:

tar xvzf uwsgi-1.9.20.tar.gz

然后,我们编辑文件uwsgiconfig.py,将第 213 行替换为

cmdline = "%s -c %s -o %s %s" % (GCC, cflags, objfile, srcfile)

换言之:

cmdline = "%s -I/usr/include/libxml2 -c %s -o %s %s" % (GCC, cflags, objfile, srcfile)

基本上,让 gcc 知道你的库在哪里/usr/include/libxml2(至少这是我们的情况)。

之后,我们重新压缩该文件夹:

tar cvf uwsgi-1.9.20.tar uwsgi-1.9.20/
gzip uwsgi-1.9.20.tar

pip并与该 gzip 文件一起使用:

sudo pip install uwsgi-1.9.20.tar.gz

这很有效。希望这对某人有帮助!

答案3

在 Cygwin 下通过 安装pip,需要以下软件包:

  • gcc 核心
  • gcc-g++ (可能)
  • libcrypt-开发
  • libintl-devel
  • python3
  • python3-devel

相关内容