uwsgi python3 plugin doesn't work

23,534

You have built a monolithic uWSGI binary with python 2.7 embedded so a plugin cannot overwrite that area of memory. You can build a simple monolithic python3 binary using:

python3 uwsgiconfig.py --build

or using pip for python3

Otherwise you can build a fully modular system with:

python uwsgiconfig.py --build core
python uwsgiconfig.py --plugin plugins/python core python27
python3 uwsgiconfig.py --plugin plugins/python core python33
Share:
23,534
Admin
Author by

Admin

Updated on May 19, 2020

Comments

  • Admin
    Admin almost 4 years

    i compiled uwsgi with make and it's successfully done,and now i decide to run my django1.5 site with python3.3 . i've checked for the doc (http://projects.unbit.it/uwsgi/wiki/Guide4Packagers) and set up python3.3 development headers through apt-get and then compile the plugin by:

    python3.3 uwsgiconfig.py --plugin plugins/python package python33

    then it says:

    using profile: buildconf/package.ini
    detected include path: ['/usr/lib/gcc/i686-linux-gnu/4.7/include', '/usr/local/include','/usr/lib/gcc/i686-linux-gnu/4.7/include-fixed', '/usr/include/i386-linux-gnu', '/usr/include']
    *** uWSGI building and linking plugin plugins/python ***
    [i686-linux-gnu-gcc -pthread] /usr/lib/uwsgi/python33_plugin.so
    *** python33 plugin built and available in /usr/lib/uwsgi/python33_plugin.so ***
    

    it seems all is well done and i do find python33_plugin.so in that dir. nginx is running and is ok,now my uwsgi ini file is like this:

    [uwsgi]  
    socket=0.0.0.0:8000 
    listen=20
    master=true
    pidfile=/usr/local/nginx/uwsgi.pid
    processes=2
    plugins=python33
    module=django_wsgi
    pythonpath=
    profiler=true
    memory-report=true
    enable-threads=true
    logdate=true
    limit-as=6048
    

    and when i run "sudo ./uwsgi uwsgi.ini",

    [uWSGI] getting INI configuration from uwsgi.ini
    open("./python33_plugin.so"): No such file or directory [core/utils.c line 3347]
    !!! UNABLE to load uWSGI plugin: ./python33_plugin.so: cannot open shared object file: No such file or directory !!!
    

    it doesn't find the .so file.anyway then i copy the .so file to the uwsgi dir,and run again,

    [uWSGI] getting INI configuration from uwsgi.ini
    Sun Apr 28 22:54:40 2013 - *** Starting uWSGI 1.9.8 (32bit) on [Sun Apr 28 22:54:40 2013] ***
    Sun Apr 28 22:54:40 2013 - compiled with version: 4.7.3 on 28 April 2013 21:25:27
    Sun Apr 28 22:54:40 2013 - os: Linux-3.8.0-19-generic #29-Ubuntu SMP Wed Apr 17 18:19:42 UTC 2013
    Sun Apr 28 22:54:40 2013 - nodename: bill-Rev-1-0
    Sun Apr 28 22:54:40 2013 - machine: i686
    Sun Apr 28 22:54:40 2013 - clock source: unix
    Sun Apr 28 22:54:40 2013 - pcre jit disabled
    Sun Apr 28 22:54:40 2013 - detected number of CPU cores: 4
    Sun Apr 28 22:54:40 2013 - current working directory: /media/bill/cloud/cloud/program/kkblog/kkblog
    Sun Apr 28 22:54:40 2013 - writing pidfile to /usr/local/nginx/uwsgi.pid
    Sun Apr 28 22:54:40 2013 - detected binary path: /usr/sbin/uwsgi
    Sun Apr 28 22:54:40 2013 - uWSGI running as root, you can use --uid/--gid/--chroot options
    Sun Apr 28 22:54:40 2013 - *** WARNING: you are running uWSGI as root !!! (use the --uid flag) *** 
    Sun Apr 28 22:54:40 2013 - your processes number limit is 31552
    Sun Apr 28 22:54:40 2013 - limiting address space of processes...
    Sun Apr 28 22:54:40 2013 - your process address space limit is 2046820352 bytes (1952 MB)
    Sun Apr 28 22:54:40 2013 - your memory page size is 4096 bytes
    Sun Apr 28 22:54:40 2013 - detected max file descriptor number: 1024
    Sun Apr 28 22:54:40 2013 - lock engine: pthread robust mutexes
    Sun Apr 28 22:54:40 2013 - uwsgi socket 0 bound to TCP address 0.0.0.0:8000 fd 3
    Sun Apr 28 22:54:40 2013 - Python version: 2.7.4 (default, Apr 19 2013, 18:35:44)  [GCC 4.7.3]
    Sun Apr 28 22:54:40 2013 - Python main interpreter initialized at 0x973e2d0
    Sun Apr 28 22:54:40 2013 - python threads support enabled
    

    i'm using ubuntu 13.04 and python2.7 and python3.3 are preinstalled.

    I SET THE PYTHON33 PLUGIN BUT UWSGI STILL LAUNCHES PYTHON2.7 ,why?

    anybody who ever met this problem? and by the way i don't like to setup uwsgi and plugins through apt-get,because it won't work at any PaaS.

    thanks!

  • aldesabido
    aldesabido over 5 years
    Hi @roberto. Where can I find the uwsgiconfig.py? Thanks for the help.
  • yofee
    yofee about 5 years
    @aldesabido It works a little different nowadays. See the official docs.
  • tktktk0711
    tktktk0711 almost 5 years
    Now, from the same directory, we start building Python plugins: what's uwsgi? could you tell in detail? --build-plugin PYTHON=python3.4 ./uwsgi --build-plugin "plugins/python python34" PYTHON=python2.7 ./uwsgi --build-plugin "plugins/python python27" PYTHON=python2.6 ./uwsgi --build-plugin "plugins/python python26"