我无法让我的烧瓶应用程序在运行CentOS 6.5的新服务器上运行。使用uWSGI。 (我有一个类似的CentOS盒,运行正常)
我在虚拟环境中安装了uWSGI。从virtualenv调用uwsgi二进制文件时,我收到以下错误(在stdout
中)
$ /path/to/venv/bin/uwsgi --emperor /etc/uwsgi/vassals
*** Starting uWSGI 2.0.8 (64bit) on [Mon Nov 17 21:18:13 2014] ***
compiled with version: 4.4.7 20120313 (Red Hat 4.4.7-11) on 16 November 2014 22:19:09
os: Linux-2.6.32-431.1.2.0.1.el6.x86_64 #1 SMP Fri Dec 13 13:06:13 UTC 2013
nodename: boxname
machine: x86_64
clock source: unix
detected number of CPU cores: 1
current working directory: /home/username
detected binary path: /home/username/mydevelopment/venvs/ecodev_do/bin/uwsgi
!!! no internal routing support, rebuild with pcre support !!!
*** WARNING: you are running uWSGI without its master process manager ***
your processes number limit is 1024
your memory page size is 4096 bytes
detected max file descriptor number: 1024
*** starting uWSGI Emperor ***
*** has_emperor mode detected (fd: 6) ***
[uWSGI] getting INI configuration from ers_portal_uwsgi.ini
Mon Nov 17 21:18:14 2014 - [emperor] curse the uwsgi instance ers_portal_uwsgi.ini (pid: 22724)
Mon Nov 17 21:18:17 2014 - [emperor] removed uwsgi instance ers_portal_uwsgi.ini
uwsgi.log文件显示:
*** Starting uWSGI 2.0.8 (64bit) on [Mon Nov 17 21:25:40 2014] ***
compiled with version: 4.4.7 20120313 (Red Hat 4.4.7-11) on 16 November 2014 22:19:09
os: Linux-2.6.32-431.1.2.0.1.el6.x86_64 #1 SMP Fri Dec 13 13:06:13 UTC 2013
nodename: boxname
machine: x86_64
clock source: unix
detected number of CPU cores: 1
current working directory: /etc/uwsgi/vassals
detected binary path: /home/username/mydevelopment/venvs/ecodev_do/bin/uwsgi
!!! no internal routing support, rebuild with pcre support !!!
chdir() to /home/username/mydevelopment/git/ers_portal
your processes number limit is 1024
your memory page size is 4096 bytes
detected max file descriptor number: 1024
lock engine: pthread robust mutexes
thunder lock: disabled (you can enable it with --thunder-lock)
uwsgi socket 0 bound to UNIX address /home/username/mydevelopment/git/ers_portal/ers_portal_uwsgi.sock fd 3
Python version: 2.7.8 (default, Nov 12 2014, 23:36:57) [GCC 4.4.7 20120313 (Red Hat 4.4.7-11)]
Set PythonHome to /home/username/mydevelopment/venvs/ecovapor_dev
ImportError: No module named site
然后,阅读他们描述的官方uWSGI文档a scenario,其中uwsgi安装在venv中,但之后必须在系统范围内安装。所以,我用过
pip2.7 install uwsgi
(在/usr/local/bin/uwsgi
中创建了二进制文件)
我已经尝试了以下所有内容而没有改变错误或输出(有和没有激活venv)..
$ /usr/local/bin/uwsgi --emperor /etc/uwsgi/vassals
$ /home/username/mydevelopment/venvs/ecodev_do/bin/uwsgi --emperor /etc/uwsgi/vassals
$ /home/username/mydevelopment/venvs/ecodev_do/bin/uwsgi --no-site
--emperor /etc/uwsgi/vassals
$ uwsgi --emperor /etc/uwsgi/vassals
$ uwsgi --no-site --emperor /etc/uwsgi/vassals
$ /path/to/venv/bin/uwsgi ~/mydevelopment/git/ers_portal/ers_portal_uwsgi.ini
(.ini文件在/etc/uwsgi/vassals
中符号链接)
这是emperor.ini
;
[uwsgi]
emperor = /etc/uwsgi/vassals
uid = username
gid = username
logto = /home/username/mydevelopment/git/ers_portal/logs/uwsgiEmperor.log
这是ers_portal_uwsgi.ini
;
[uwsgi]
master = true
#user info
uid = username
gid = username
#application's base folder
base = /home/username/mydevelopment/git/ers_portal
#chdir to this folder when starting
chdir = /home/username/mydevelopment/git/ers_portal
#python module to import
app = run_web
module = %(app)
home = /home/username/mydevelopment/venvs/ecovapor_dev
pythonpath = %(base)
#socket file's location
socket = /home/username/mydevelopment/git/ers_portal/%n.sock
#permissions for the socket file
chmod-socket = 666
#the variable that holds a flask application inside the module imported at line #6
#uwsgi varible only, does not relate to your flask application
callable = app
#location of log files
logto = /home/username/mydevelopment/git/ers_portal/logs/%n.log
答案 0 :(得分:1)
如果有人使用python 3.x,使用pip3安装uwsgi可以解决这个问题:
sudo pip3 install uwsgi
有问题的virtualenv和uwsgi必须使用相同的python版本。
如果您想在同一系统上使用多个python版本,可以获取uwsgi source并按照此处的说明进行操作:http://projects.unbit.it/uwsgi/wiki/MultiPython
然后添加一个"插件= / path /到/ plugin"到.ini文件
请注意,插件不适用于打包的Ubuntu版本(内置单片机),但您需要直接编译源代码以获得完全模块化的二进制文件
答案 1 :(得分:0)
这对我有帮助。 在您的终端中键入它。
unset PYTHONHOME
unset PYTHONPATH