uwsgi-docs
uwsgi-docs copied to clipboard
cannot install uwsgi from pypi on neither Ubuntu 18.04 nor 20.04 - cannot find -lintl
Python & pip versions:
$ python -VV
Python 3.8.1 (default, May 5 2020, 10:23:47)
[GCC 9.3.0]
$ pip --version
pip 20.1 from /home/mateusz/Software/Spack/opt/spack/linux-ubuntu20.04-skylake/gcc-9.3.0/python-3.8.1-b3h7rovi53cugzcnikbxc6cfebsi3wgc/lib/python3.8/site-packages/pip (python 3.8)
Output when trying to install uwsgi:
$ pip install uwsgi
...
Installing collected packages: uwsgi
Running setup.py install for uwsgi ... error
ERROR: Command errored out with exit status 1:
command: /home/mateusz/Software/Spack/opt/spack/linux-ubuntu20.04-skylake/gcc-9.3.0/python-3.8.1-b3h7rovi53cugzcnikbxc6cfebsi3wgc/bin/python -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-h4esxi7p/uwsgi/setup.py'"'"'; __file__='"'"'/tmp/pip-install-h4esxi7p/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-wbdkmr6a/install-record.txt --single-version-externally-managed --compile --install-headers /home/mateusz/Software/Spack/opt/spack/linux-ubuntu20.04-skylake/gcc-9.3.0/python-3.8.1-b3h7rovi53cugzcnikbxc6cfebsi3wgc/include/python3.8/uwsgi
cwd: /tmp/pip-install-h4esxi7p/uwsgi/
Complete output (153 lines):
/home/mateusz/Software/Spack/opt/spack/linux-ubuntu20.04-skylake/gcc-9.3.0/python-3.8.1-b3h7rovi53cugzcnikbxc6cfebsi3wgc/lib/python3.8/distutils/dist.py:274: UserWarning: Unknown distribution option: 'descriptions'
warnings.warn(msg)
running install
using profile: buildconf/default.ini
detected include path: ['/home/mateusz/Software/Spack/opt/spack/linux-ubuntu20.04-skylake/gcc-9.3.0/openblas-0.3.8-jzfc4ppetpsyrt4d4irmpfrftcp5h72a/include', '/home/mateusz/Software/Spack/opt/spack/linux-ubuntu20.04-skylake/gcc-9.3.0/python-3.8.1-b3h7rovi53cugzcnikbxc6cfebsi3wgc/include/python3.8', '/home/mateusz/Software/Spack/opt/spack/linux-ubuntu20.04-skylake/gcc-9.3.0/python-3.8.1-b3h7rovi53cugzcnikbxc6cfebsi3wgc/include', '/usr/lib/gcc/x86_64-linux-gnu/9/include', '/usr/local/include', '/usr/include/x86_64-linux-gnu', '/usr/include']
Patching "bin_name" to properly install_scripts dir
detected CPU cores: 8
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_ZLIB -DUWSGI_LOCK_USE_MUTEX -DUWSGI_EVENT_USE_EPOLL -DUWSGI_EVENT_TIMER_USE_TIMERFD -DUWSGI_EVENT_FILEMONITOR_USE_INOTIFY -DUWSGI_PCRE -DUWSGI_ROUTING -DUWSGI_CAP -DUWSGI_UUID -DUWSGI_VERSION="\"2.0.18\"" -DUWSGI_VERSION_BASE="2" -DUWSGI_VERSION_MAJOR="0" -DUWSGI_VERSION_MINOR="18" -DUWSGI_VERSION_REVISION="0" -DUWSGI_VERSION_CUSTOM="\"\"" -DUWSGI_YAML -DUWSGI_SSL -I/usr/include/libxml2 -DUWSGI_XML -DUWSGI_XML_LIBXML2 -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/zlib.o is up to date
core/regexp.o is up to date
core/routing.o is up to date
core/yaml.o is up to date
core/ssl.o is up to date
core/legion.o is up to date
core/xmlconf.o is up to date
[thread 3][/usr/bin/gcc-9 -pthread] core/dot_h.o
[thread 2][/usr/bin/gcc-9 -pthread] core/config_py.o
*** uWSGI compiling embedded plugins ***
plugins/python/python_plugin.o is up to date
plugins/python/pyutils.o is up to date
plugins/python/pyloader.o is up to date
plugins/python/wsgi_handlers.o is up to date
plugins/python/wsgi_headers.o is up to date
plugins/python/wsgi_subhandler.o is up to date
plugins/python/web3_subhandler.o is up to date
plugins/python/pump_subhandler.o is up to date
plugins/python/gil.o is up to date
plugins/python/uwsgi_pymodule.o is up to date
plugins/python/profiler.o is up to date
plugins/python/symimporter.o is up to date
plugins/python/tracebacker.o is up to date
plugins/python/raw.o is up to date
plugins/gevent/gevent.o is up to date
plugins/gevent/hooks.o is up to date
plugins/ping/ping_plugin.o is up to date
plugins/cache/cache.o is up to date
plugins/nagios/nagios.o is up to date
plugins/rrdtool/rrdtool.o is up to date
plugins/carbon/carbon.o is up to date
plugins/rpc/rpc_plugin.o is up to date
plugins/corerouter/cr_common.o is up to date
plugins/corerouter/cr_map.o is up to date
plugins/corerouter/corerouter.o is up to date
plugins/fastrouter/fastrouter.o is up to date
plugins/http/http.o is up to date
plugins/http/keepalive.o is up to date
plugins/http/https.o is up to date
plugins/http/spdy3.o is up to date
plugins/ugreen/ugreen.o is up to date
plugins/signal/signal_plugin.o is up to date
plugins/syslog/syslog_plugin.o is up to date
plugins/rsyslog/rsyslog_plugin.o is up to date
plugins/logsocket/logsocket_plugin.o is up to date
plugins/router_uwsgi/router_uwsgi.o is up to date
plugins/router_redirect/router_redirect.o is up to date
plugins/router_basicauth/router_basicauth.o is up to date
plugins/zergpool/zergpool.o is up to date
plugins/redislog/redislog_plugin.o is up to date
plugins/mongodblog/mongodblog_plugin.o is up to date
plugins/router_rewrite/router_rewrite.o is up to date
plugins/router_http/router_http.o is up to date
plugins/logfile/logfile.o is up to date
plugins/router_cache/router_cache.o is up to date
plugins/rawrouter/rawrouter.o is up to date
plugins/router_static/router_static.o is up to date
plugins/sslrouter/sslrouter.o is up to date
plugins/spooler/spooler_plugin.o is up to date
plugins/cheaper_busyness/cheaper_busyness.o is up to date
plugins/symcall/symcall_plugin.o is up to date
plugins/transformation_tofile/tofile.o is up to date
plugins/transformation_gzip/gzip.o is up to date
plugins/transformation_chunked/chunked.o is up to date
plugins/transformation_offload/offload.o is up to date
plugins/router_memcached/router_memcached.o is up to date
plugins/router_redis/router_redis.o is up to date
plugins/router_hash/router_hash.o is up to date
plugins/router_expires/expires.o is up to date
plugins/router_metrics/plugin.o is up to date
plugins/transformation_template/tt.o is up to date
plugins/stats_pusher_socket/plugin.o is up to date
*** uWSGI linking ***
/usr/bin/gcc-9 -pthread -o /home/mateusz/Software/Spack/opt/spack/linux-ubuntu20.04-skylake/gcc-9.3.0/python-3.8.1-b3h7rovi53cugzcnikbxc6cfebsi3wgc/bin/uwsgi -L/home/mateusz/Software/Spack/opt/spack/linux-ubuntu20.04-skylake/gcc-9.3.0/python-3.8.1-b3h7rovi53cugzcnikbxc6cfebsi3wgc/lib -Wl,-rpath,/home/mateusz/Software/Spack/opt/spack/linux-ubuntu20.04-skylake/gcc-9.3.0/python-3.8.1-b3h7rovi53cugzcnikbxc6cfebsi3wgc/lib core/utils.o core/protocol.o core/socket.o core/logging.o core/master.o core/master_utils.o core/emperor.o core/notify.o core/mule.o core/subscription.o core/stats.o core/sendfile.o core/async.o core/master_checks.o core/fifo.o core/offload.o core/io.o core/static.o core/websockets.o core/spooler.o core/snmp.o core/exceptions.o core/config.o core/setup_utils.o core/clock.o core/init.o core/buffer.o core/reader.o core/writer.o core/alarm.o core/cron.o core/hooks.o core/plugins.o core/lock.o core/cache.o core/daemons.o core/errors.o core/hash.o core/master_events.o core/chunked.o core/queue.o core/event.o core/signal.o core/strings.o core/progress.o core/timebomb.o core/ini.o core/fsmon.o core/mount.o core/metrics.o core/plugins_builder.o core/sharedarea.o core/rpc.o core/gateway.o core/loop.o core/cookie.o core/querystring.o core/rb_timers.o core/transformations.o core/uwsgi.o proto/base.o proto/uwsgi.o proto/http.o proto/fastcgi.o proto/scgi.o proto/puwsgi.o lib/linux_ns.o core/zlib.o core/regexp.o core/routing.o core/yaml.o core/ssl.o core/legion.o core/xmlconf.o core/dot_h.o core/config_py.o plugins/python/python_plugin.o plugins/python/pyutils.o plugins/python/pyloader.o plugins/python/wsgi_handlers.o plugins/python/wsgi_headers.o plugins/python/wsgi_subhandler.o plugins/python/web3_subhandler.o plugins/python/pump_subhandler.o plugins/python/gil.o plugins/python/uwsgi_pymodule.o plugins/python/profiler.o plugins/python/symimporter.o plugins/python/tracebacker.o plugins/python/raw.o plugins/gevent/gevent.o plugins/gevent/hooks.o plugins/ping/ping_plugin.o plugins/cache/cache.o plugins/nagios/nagios.o plugins/rrdtool/rrdtool.o plugins/carbon/carbon.o plugins/rpc/rpc_plugin.o plugins/corerouter/cr_common.o plugins/corerouter/cr_map.o plugins/corerouter/corerouter.o plugins/fastrouter/fastrouter.o plugins/http/http.o plugins/http/keepalive.o plugins/http/https.o plugins/http/spdy3.o plugins/ugreen/ugreen.o plugins/signal/signal_plugin.o plugins/syslog/syslog_plugin.o plugins/rsyslog/rsyslog_plugin.o plugins/logsocket/logsocket_plugin.o plugins/router_uwsgi/router_uwsgi.o plugins/router_redirect/router_redirect.o plugins/router_basicauth/router_basicauth.o plugins/zergpool/zergpool.o plugins/redislog/redislog_plugin.o plugins/mongodblog/mongodblog_plugin.o plugins/router_rewrite/router_rewrite.o plugins/router_http/router_http.o plugins/logfile/logfile.o plugins/router_cache/router_cache.o plugins/rawrouter/rawrouter.o plugins/router_static/router_static.o plugins/sslrouter/sslrouter.o plugins/spooler/spooler_plugin.o plugins/cheaper_busyness/cheaper_busyness.o plugins/symcall/symcall_plugin.o plugins/transformation_tofile/tofile.o plugins/transformation_gzip/gzip.o plugins/transformation_chunked/chunked.o plugins/transformation_offload/offload.o plugins/router_memcached/router_memcached.o plugins/router_redis/router_redis.o plugins/router_hash/router_hash.o plugins/router_expires/expires.o plugins/router_metrics/plugin.o plugins/transformation_template/tt.o plugins/stats_pusher_socket/plugin.o -lpthread -lm -rdynamic -ldl -lz -lpcre -lcap -luuid -lssl -lcrypto -lxml2 -lcrypt -lintl -lpthread -ldl -lutil -lm -lm -lpython3.8 -lcrypt
/usr/bin/ld: cannot find -lintl
collect2: error: ld returned 1 exit status
*** error linking uWSGI ***
----------------------------------------
ERROR: Command errored out with exit status 1: /home/mateusz/Software/Spack/opt/spack/linux-ubuntu20.04-skylake/gcc-9.3.0/python-3.8.1-b3h7rovi53cugzcnikbxc6cfebsi3wgc/bin/python -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-h4esxi7p/uwsgi/setup.py'"'"'; __file__='"'"'/tmp/pip-install-h4esxi7p/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-wbdkmr6a/install-record.txt --single-version-externally-managed --compile --install-headers /home/mateusz/Software/Spack/opt/spack/linux-ubuntu20.04-skylake/gcc-9.3.0/python-3.8.1-b3h7rovi53cugzcnikbxc6cfebsi3wgc/include/python3.8/uwsgi Check the logs for full command output.
Looking for packages that contains the missing intl
library:
$ apt-file find "libintl.so"
gettext: /usr/lib/x86_64-linux-gnu/preloadable_libintl.so
... no such package.
Very Ugly Workaround™:
$ cd /usr/lib/x86_64-linux-gnu/
$ sudo ln -s preloadable_libintl.so libintl.so
Try again:
$ pip install uwsgi
Collecting uwsgi
Using cached uwsgi-2.0.18.tar.gz (801 kB)
Building wheels for collected packages: uwsgi
Building wheel for uwsgi (setup.py) ... done
Created wheel for uwsgi: filename=uWSGI-2.0.18-cp38-cp38-linux_x86_64.whl size=593015 sha256=afce5422420cc6adcefd347bb765116186ff4cb80876e59603f8317b10250156
Stored in directory: /home/mateusz/.cache/pip/wheels/48/07/77/7996e2077b5ab7ee02928e2338a970e18091bac789c62932c1
Successfully built uwsgi
Installing collected packages: uwsgi
Successfully installed uwsgi-2.0.18
Therefore the problem is that there is no package on Ubuntu 20.04 that contains exactly libintl.so
, a compatible preloadable_libintl.so
is available instead. Could the setup of uwsgi accomodate that?
In either case, it's not like uwsgi is not Ubuntu-20.04-ready, or Ubuntu 20.04 is not uwsgi-ready, because I think uwsgi is available in official Ubuntu repositories. Not sure what patch they use to enable it though.
Encountering exact same issue on Ubuntu 18.04 with following Python & pip:
$ python -VV
Python 3.8.2 (default, Mar 15 2020, 01:53:27)
[GCC 8.3.0]
$ pip --version
pip 20.1 from /home/mateusz/Software/Spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-8.3.0-26/python-3.8.2-xdclm7ardyhw6nuddnbkreprijtv43eq/lib/python3.8/site-packages/pip (python 3.8)
I don't see anything in uwsgi linking against gettext, is it libxml2? What does xml2-config --libs
return?
Uhm it well maybe your python, is it the ubuntu one? Pretty sure the 18.04 one is not a stock one
This is python3.8 from debian sid:
>>> from distutils import sysconfig
>>> LIBS = sysconfig.get_config_var('LIBS').split() + sysconfig.get_config_var('SYSLIBS').split()
>>>
>>> LIBS
['-lcrypt', '-lpthread', '-ldl', '-lutil', '-lm', '-lm']
Stock python3 from ubuntu 18.04:
>>> from distutils import sysconfig
>>> LIBS = sysconfig.get_config_var('LIBS').split() + sysconfig.get_config_var('SYSLIBS').split()
>>> LIBS
['-lpthread', '-ldl', '-lutil', '-lm']
Upgrading python to 3.9.7 solved the problem for me. I am using a Mac.