web-dev-qa-db-ja.com

uwsgipython3プラグインが機能しない

makeを使用してuwsgiをコンパイルしましたが、正常に完了しました。次に、Django1.5サイトをpython3.3で実行することにしました。ドキュメント( http://projects.unbit.it/uwsgi/wiki/Guide4Packagers )を確認し、apt-getを使用してpython3.3開発ヘッダーを設定し、次の方法でプラグインをコンパイルしました。

python3.3 uwsgiconfig.py--プラグインプラグイン/ 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が実行されており、問題ありません。uwsgiiniファイルは次のようになります。

[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

私はubuntu13.04を使用しており、python2.7とpython3.3がプリインストールされています。

PYTHON33プラグインを設定しましたが、UWSGIはまだPYTHON2.7を起動します。なぜですか?

この問題に遭遇したことのある人はいますか?ちなみに、apt-getを使用してuwsgiとプラグインをセットアップするのは好きではありません。これは、どのPaaSでも機能しないためです。

ありがとう!

14
Bill Phun

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
12
roberto