【问题标题】:uwsgi python3 plugin doesn't workuwsgi python3插件不起作用
【发布时间】:2013-04-28 15:04:53
【问题描述】:

我用 make 编译了 uwsgi 并成功完成,现在我决定用 python3.3 运行我的 django1.5 站点。我检查了文档 (http://projects.unbit.it/uwsgi/wiki/Guide4Packagers) 并通过 apt-get 设置了 python3.3 开发头文件,然后通过以下方式编译插件:

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

然后它说:

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 ***

似乎一切都做得很好,我确实在该目录中找到了 python33_plugin.so。 nginx正在运行并且没问题,现在我的uwsgi ini文件是这样的:

[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

当我运行“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 !!!

它没有找到 .so 文件。无论如何,我将 .so 文件复制到 uwsgi 目录,然后再次运行,

[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

我使用的是 ubuntu 13.04,并且预装了 python2.7 和 python3.3。

我设置了 PYTHON33 插件,但 UWSGI 仍然启动 PYTHON2.7,为什么?

有人遇到过这个问题吗?顺便说一句,我不喜欢通过 apt-get 设置 uwsgi 和插件,因为它在任何 PaaS 上都不起作用。

谢谢!

【问题讨论】:

    标签: plugins python-3.x compilation uwsgi python-3.3


    【解决方案1】:

    您已经构建了一个嵌入了 python 2.7 的单片 uWSGI 二进制文件,因此插件无法覆盖该内存区域。您可以使用以下方法构建一个简单的单体 python3 二进制文件:

    python3 uwsgiconfig.py --build
    

    或者在 python3 中使用 pip

    否则,您可以构建一个完全模块化的系统:

    python uwsgiconfig.py --build core
    python uwsgiconfig.py --plugin plugins/python core python27
    python3 uwsgiconfig.py --plugin plugins/python core python33
    

    【讨论】:

    • 嗨@roberto。我在哪里可以找到 uwsgiconfig.py?感谢您的帮助。
    • @aldesabido 现在的工作方式有点不同。见the official docs
    • 现在,我们从同一个目录开始构建 Python 插件:什么是 uwsgi?你能详细说一下吗? --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"
    猜你喜欢
    • 2021-03-29
    • 1970-01-01
    • 1970-01-01
    • 2015-12-13
    • 1970-01-01
    • 1970-01-01
    • 2014-11-20
    • 2018-12-20
    • 1970-01-01
    相关资源
    最近更新 更多