执行 pip install uWSGI==2.0.17.1 控制台输出信息如下:
Collecting uwsgi
Using cached https://files.pythonhosted.org/packages/a2/c9/a2d5737f63cd9df4317a4acc15d1ddf4952e28398601d8d7d706c16381e0/uwsgi-2.0.17.1.tar.gz
Building wheels for collected packages: uwsgi
Running setup.py bdist_wheel for uwsgi ... error
Complete output from command /home/achilles/.virtualenvs/AXF/bin/python3 -u -c "import setuptools, tokenize;file='/tmp/pip-install-_t32mxq8/uwsgi/setup.py';f=getattr(tokenize, 'open', open)(file);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, file, 'exec'))" bdist_wheel -d /tmp/pip-wheel-3lg8y7rq --python-tag cp35:
/usr/lib/python3.5/distutils/dist.py:261: UserWarning: Unknown distribution option: 'descriptions'
warnings.warn(msg)
running bdist_wheel
running build
running build_py
creating build
creating build/lib
copying uwsgidecorators.py -> build/lib
installing to build/bdist.linux-x86_64/wheel
running install
using profile: buildconf/default.ini
detected include path: ['/usr/lib/gcc/x86_64-linux-gnu/5/include', '/usr/local/include', '/usr/lib/gcc/x86_64-linux-gnu/5/include-fixed', '/usr/include/x86_64-linux-gnu', '/usr/include']
Patching "bin_name" to properly install_scripts dir
detected CPU cores: 1
configured CFLAGS: -O2 -I. -Wall -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -DUWSGI_HAS_IFADDRS -DUWSGI_LOCK_USE_MUTEX -DUWSGI_EVENT_USE_EPOLL -DUWSGI_EVENT_TIMER_USE_TIMERFD -DUWSGI_EVENT_FILEMONITOR_USE_INOTIFY -DUWSGI_VERSION=""2.0.17.1"" -DUWSGI_VERSION_BASE="2" -DUWSGI_VERSION_MAJOR="0" -DUWSGI_VERSION_MINOR="17" -DUWSGI_VERSION_REVISION="1" -DUWSGI_VERSION_CUSTOM="""" -DUWSGI_YAML -DUWSGI_XML -DUWSGI_XML_EXPAT -DUWSGI_PLUGIN_DIR=""."" -DUWSGI_DECLARE_EMBEDDED_PLUGINS="UDEP(python);UDEP(gevent);UDEP(ping);UDEP(cache);UDEP(nagios);UDEP(rrdtool);UDEP(carbon);UDEP(rpc);UDEP(corerouter);UDEP(fastrouter);UDEP(http);UDEP(ugreen);UDEP(signal);UDEP(syslog);UDEP(rsyslog);UDEP(logsocket);UDEP(router_uwsgi);UDEP(router_redirect);UDEP(router_basicauth);UDEP(zergpool);UDEP(redislog);UDEP(mongodblog);UDEP(router_rewrite);UDEP(router_http);UDEP(logfile);UDEP(router_cache);UDEP(rawrouter);UDEP(router_static);UDEP(sslrouter);UDEP(spooler);UDEP(cheaper_busyness);UDEP(symcall);UDEP(transformation_tofile);UDEP(transformation_gzip);UDEP(transformation_chunked);UDEP(transformation_offload);UDEP(router_memcached);UDEP(router_redis);UDEP(router_hash);UDEP(router_expires);UDEP(router_metrics);UDEP(transformation_template);UDEP(stats_pusher_socket);" -DUWSGI_LOAD_EMBEDDED_PLUGINS="ULEP(python);ULEP(gevent);ULEP(ping);ULEP(cache);ULEP(nagios);ULEP(rrdtool);ULEP(carbon);ULEP(rpc);ULEP(corerouter);ULEP(fastrouter);ULEP(http);ULEP(ugreen);ULEP(signal);ULEP(syslog);ULEP(rsyslog);ULEP(logsocket);ULEP(router_uwsgi);ULEP(router_redirect);ULEP(router_basicauth);ULEP(zergpool);ULEP(redislog);ULEP(mongodblog);ULEP(router_rewrite);ULEP(router_http);ULEP(logfile);ULEP(router_cache);ULEP(rawrouter);ULEP(router_static);ULEP(sslrouter);ULEP(spooler);ULEP(cheaper_busyness);ULEP(symcall);ULEP(transformation_tofile);ULEP(transformation_gzip);ULEP(transformation_chunked);ULEP(transformation_offload);ULEP(router_memcached);ULEP(router_redis);ULEP(router_hash);ULEP(router_expires);ULEP(router_metrics);ULEP(transformation_template);ULEP(stats_pusher_socket);"
*** uWSGI compiling server core ***
[x86_64-linux-gnu-gcc -pthread] core/utils.o
[x86_64-linux-gnu-gcc -pthread] core/protocol.o
[x86_64-linux-gnu-gcc -pthread] core/socket.o
[x86_64-linux-gnu-gcc -pthread] core/logging.o
[x86_64-linux-gnu-gcc -pthread] core/master.o
[x86_64-linux-gnu-gcc -pthread] core/master_utils.o
[x86_64-linux-gnu-gcc -pthread] core/emperor.o
[x86_64-linux-gnu-gcc -pthread] core/notify.o
[x86_64-linux-gnu-gcc -pthread] core/mule.o
[x86_64-linux-gnu-gcc -pthread] core/subscription.o
[x86_64-linux-gnu-gcc -pthread] core/stats.o
[x86_64-linux-gnu-gcc -pthread] core/sendfile.o
[x86_64-linux-gnu-gcc -pthread] core/async.o
[x86_64-linux-gnu-gcc -pthread] core/master_checks.o
[x86_64-linux-gnu-gcc -pthread] core/fifo.o
[x86_64-linux-gnu-gcc -pthread] core/offload.o
[x86_64-linux-gnu-gcc -pthread] core/io.o
[x86_64-linux-gnu-gcc -pthread] core/static.o
[x86_64-linux-gnu-gcc -pthread] core/websockets.o
[x86_64-linux-gnu-gcc -pthread] core/spooler.o
[x86_64-linux-gnu-gcc -pthread] core/snmp.o
[x86_64-linux-gnu-gcc -pthread] core/exceptions.o
[x86_64-linux-gnu-gcc -pthread] core/config.o
[x86_64-linux-gnu-gcc -pthread] core/setup_utils.o
[x86_64-linux-gnu-gcc -pthread] core/clock.o
[x86_64-linux-gnu-gcc -pthread] core/init.o
[x86_64-linux-gnu-gcc -pthread] core/buffer.o
[x86_64-linux-gnu-gcc -pthread] core/reader.o
[x86_64-linux-gnu-gcc -pthread] core/writer.o
[x86_64-linux-gnu-gcc -pthread] core/alarm.o
[x86_64-linux-gnu-gcc -pthread] core/cron.o
[x86_64-linux-gnu-gcc -pthread] core/hooks.o
[x86_64-linux-gnu-gcc -pthread] core/plugins.o
[x86_64-linux-gnu-gcc -pthread] core/lock.o
[x86_64-linux-gnu-gcc -pthread] core/cache.o
[x86_64-linux-gnu-gcc -pthread] core/daemons.o
[x86_64-linux-gnu-gcc -pthread] core/errors.o
[x86_64-linux-gnu-gcc -pthread] core/hash.o
[x86_64-linux-gnu-gcc -pthread] core/master_events.o
[x86_64-linux-gnu-gcc -pthread] core/chunked.o
[x86_64-linux-gnu-gcc -pthread] core/queue.o
[x86_64-linux-gnu-gcc -pthread] core/event.o
[x86_64-linux-gnu-gcc -pthread] core/signal.o
[x86_64-linux-gnu-gcc -pthread] core/strings.o
[x86_64-linux-gnu-gcc -pthread] core/progress.o
[x86_64-linux-gnu-gcc -pthread] core/timebomb.o
[x86_64-linux-gnu-gcc -pthread] core/ini.o
[x86_64-linux-gnu-gcc -pthread] core/fsmon.o
[x86_64-linux-gnu-gcc -pthread] core/mount.o
[x86_64-linux-gnu-gcc -pthread] core/metrics.o
[x86_64-linux-gnu-gcc -pthread] core/plugins_builder.o
[x86_64-linux-gnu-gcc -pthread] core/sharedarea.o
[x86_64-linux-gnu-gcc -pthread] core/rpc.o
[x86_64-linux-gnu-gcc -pthread] core/gateway.o
[x86_64-linux-gnu-gcc -pthread] core/loop.o
[x86_64-linux-gnu-gcc -pthread] core/cookie.o
[x86_64-linux-gnu-gcc -pthread] core/querystring.o
[x86_64-linux-gnu-gcc -pthread] core/rb_timers.o
[x86_64-linux-gnu-gcc -pthread] core/transformations.o
[x86_64-linux-gnu-gcc -pthread] core/uwsgi.o
[x86_64-linux-gnu-gcc -pthread] proto/base.o
[x86_64-linux-gnu-gcc -pthread] proto/uwsgi.o
[x86_64-linux-gnu-gcc -pthread] proto/http.o
[x86_64-linux-gnu-gcc -pthread] proto/fastcgi.o
[x86_64-linux-gnu-gcc -pthread] proto/scgi.o
[x86_64-linux-gnu-gcc -pthread] proto/puwsgi.o
[x86_64-linux-gnu-gcc -pthread] lib/linux_ns.o
[x86_64-linux-gnu-gcc -pthread] core/yaml.o
[x86_64-linux-gnu-gcc -pthread] core/xmlconf.o
[x86_64-linux-gnu-gcc -pthread] core/dot_h.o
[x86_64-linux-gnu-gcc -pthread] core/config_py.o
*** uWSGI compiling embedded plugins ***
[x86_64-linux-gnu-gcc -pthread] plugins/python/python_plugin.o
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.
Failed building wheel for uwsgi
Running setup.py clean for uwsgi
Failed to build uwsgi
Installing collected packages: uwsgi
Running setup.py install for uwsgi ... error
Complete output from command /home/achilles/.virtualenvs/AXF/bin/python3 -u -c "import setuptools, tokenize;file='/tmp/pip-install-_t32mxq8/uwsgi/setup.py';f=getattr(tokenize, 'open', open)(file);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, file, 'exec'))" install --record /tmp/pip-record-aafsojm1/install-record.txt --single-version-externally-managed --compile --install-headers /home/achilles/.virtualenvs/AXF/include/site/python3.5/uwsgi:
/usr/lib/python3.5/distutils/dist.py:261: UserWarning: Unknown distribution option: 'descriptions'
warnings.warn(msg)
running install
using profile: buildconf/default.ini
detected include path: ['/usr/lib/gcc/x86_64-linux-gnu/5/include', '/usr/local/include', '/usr/lib/gcc/x86_64-linux-gnu/5/include-fixed', '/usr/include/x86_64-linux-gnu', '/usr/include']
Patching "bin_name" to properly install_scripts dir
detected CPU cores: 1
configured CFLAGS: -O2 -I. -Wall -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -DUWSGI_HAS_IFADDRS -DUWSGI_LOCK_USE_MUTEX -DUWSGI_EVENT_USE_EPOLL -DUWSGI_EVENT_TIMER_USE_TIMERFD -DUWSGI_EVENT_FILEMONITOR_USE_INOTIFY -DUWSGI_VERSION=""2.0.17.1"" -DUWSGI_VERSION_BASE="2" -DUWSGI_VERSION_MAJOR="0" -DUWSGI_VERSION_MINOR="17" -DUWSGI_VERSION_REVISION="1" -DUWSGI_VERSION_CUSTOM="""" -DUWSGI_YAML -DUWSGI_XML -DUWSGI_XML_EXPAT -DUWSGI_PLUGIN_DIR=""."" -DUWSGI_DECLARE_EMBEDDED_PLUGINS="UDEP(python);UDEP(gevent);UDEP(ping);UDEP(cache);UDEP(nagios);UDEP(rrdtool);UDEP(carbon);UDEP(rpc);UDEP(corerouter);UDEP(fastrouter);UDEP(http);UDEP(ugreen);UDEP(signal);UDEP(syslog);UDEP(rsyslog);UDEP(logsocket);UDEP(router_uwsgi);UDEP(router_redirect);UDEP(router_basicauth);UDEP(zergpool);UDEP(redislog);UDEP(mongodblog);UDEP(router_rewrite);UDEP(router_http);UDEP(logfile);UDEP(router_cache);UDEP(rawrouter);UDEP(router_static);UDEP(sslrouter);UDEP(spooler);UDEP(cheaper_busyness);UDEP(symcall);UDEP(transformation_tofile);UDEP(transformation_gzip);UDEP(transformation_chunked);UDEP(transformation_offload);UDEP(router_memcached);UDEP(router_redis);UDEP(router_hash);UDEP(router_expires);UDEP(router_metrics);UDEP(transformation_template);UDEP(stats_pusher_socket);" -DUWSGI_LOAD_EMBEDDED_PLUGINS="ULEP(python);ULEP(gevent);ULEP(ping);ULEP(cache);ULEP(nagios);ULEP(rrdtool);ULEP(carbon);ULEP(rpc);ULEP(corerouter);ULEP(fastrouter);ULEP(http);ULEP(ugreen);ULEP(signal);ULEP(syslog);ULEP(rsyslog);ULEP(logsocket);ULEP(router_uwsgi);ULEP(router_redirect);ULEP(router_basicauth);ULEP(zergpool);ULEP(redislog);ULEP(mongodblog);ULEP(router_rewrite);ULEP(router_http);ULEP(logfile);ULEP(router_cache);ULEP(rawrouter);ULEP(router_static);ULEP(sslrouter);ULEP(spooler);ULEP(cheaper_busyness);ULEP(symcall);ULEP(transformation_tofile);ULEP(transformation_gzip);ULEP(transformation_chunked);ULEP(transformation_offload);ULEP(router_memcached);ULEP(router_redis);ULEP(router_hash);ULEP(router_expires);ULEP(router_metrics);ULEP(transformation_template);ULEP(stats_pusher_socket);"
*** uWSGI compiling server core ***
core/utils.o is up to date
core/protocol.o is up to date
core/socket.o is up to date
core/logging.o is up to date
core/master.o is up to date
core/master_utils.o is up to date
core/emperor.o is up to date
core/notify.o is up to date
core/mule.o is up to date
core/subscription.o is up to date
core/stats.o is up to date
core/sendfile.o is up to date
core/async.o is up to date
core/master_checks.o is up to date
core/fifo.o is up to date
core/offload.o is up to date
core/io.o is up to date
core/static.o is up to date
core/websockets.o is up to date
core/spooler.o is up to date
core/snmp.o is up to date
core/exceptions.o is up to date
core/config.o is up to date
core/setup_utils.o is up to date
core/clock.o is up to date
core/init.o is up to date
core/buffer.o is up to date
core/reader.o is up to date
core/writer.o is up to date
core/alarm.o is up to date
core/cron.o is up to date
core/hooks.o is up to date
core/plugins.o is up to date
core/lock.o is up to date
core/cache.o is up to date
core/daemons.o is up to date
core/errors.o is up to date
core/hash.o is up to date
core/master_events.o is up to date
core/chunked.o is up to date
core/queue.o is up to date
core/event.o is up to date
core/signal.o is up to date
core/strings.o is up to date
core/progress.o is up to date
core/timebomb.o is up to date
core/ini.o is up to date
core/fsmon.o is up to date
core/mount.o is up to date
core/metrics.o is up to date
core/plugins_builder.o is up to date
core/sharedarea.o is up to date
core/rpc.o is up to date
core/gateway.o is up to date
core/loop.o is up to date
core/cookie.o is up to date
core/querystring.o is up to date
core/rb_timers.o is up to date
core/transformations.o is up to date
core/uwsgi.o is up to date
proto/base.o is up to date
proto/uwsgi.o is up to date
proto/http.o is up to date
proto/fastcgi.o is up to date
proto/scgi.o is up to date
proto/puwsgi.o is up to date
lib/linux_ns.o is up to date
core/yaml.o is up to date
core/xmlconf.o is up to date
[x86_64-linux-gnu-gcc -pthread] core/dot_h.o
[x86_64-linux-gnu-gcc -pthread] core/config_py.o
*** uWSGI compiling embedded plugins ***
[x86_64-linux-gnu-gcc -pthread] plugins/python/python_plugin.o
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.
Command "/home/achilles/.virtualenvs/AXF/bin/python3 -u -c "import setuptools, tokenize;file='/tmp/pip-install-_t32mxq8/uwsgi/setup.py';f=getattr(tokenize, 'open', open)(file);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, file, 'exec'))" install --record /tmp/pip-record-aafsojm1/install-record.txt --single-version-externally-managed --compile --install-headers /home/achilles/.virtualenvs/AXF/include/site/python3.5/uwsgi" failed with error code 1 in /tmp/pip-install-_t32mxq8/uwsgi/
主要错误信息如下:
plugins/python/uwsgi_python.h:2:20: fatal error: Python.h: No such file or directory
原因:系统缺少python-dev
解决:执行如下代码
sudo apt-get install python-dev # for python2.x installs
sudo apt-get install python3-dev # for python3.x installs
注意:若执行过程中,出现如下提示
则依次选择 n / y / y 即可
若代码执行过程中报错,则先执行:
sudo apt-get install aptitude
然后再执行上一步代码
安装完成后,继续执行代码
pip install uWSGI==2.0.17.1