我正在尝试将 Python 应用程序部署到运行 Nginx / uWSGI 的 Ubuntu 12.04.1 VPS。我已按照以下方式设置服务器本指南。当我重新启动 uWSGI 时,我收到此消息:
nickd@my-vps:~$ sudo /etc/init.d/uwsgi restart
[sudo] password for nickd:
* Restarting app server(s) uwsgi
[uWSGI] getting INI configuration from /usr/share/uwsgi/conf/default.ini
[uWSGI] parsing config file /etc/uwsgi/apps-enabled/application.net.xml
open("./python_plugin.so"): No such file or directory [core/utils.c line 4700]
!!! UNABLE to load uWSGI plugin: ./python_plugin.so: cannot open shared object file: No such file or directory !!! Tue Dec 11
15:18:06 2012 - [WARNING] option "app" is deprecated: use the more advanced "mount" option
我的应用程序.net.xml:
<uwsgi>
<plugin>python</plugin>
<socket>/run/uwsgi/app/application.net/application.net.socket</socket>
<pythonpath>/var/www/apps/application/</pythonpath>
<app mountpoint="/">
<script>wsgi_configuration_module</script>
</app>
<master/>
<processes>4</processes>
<harakiri>60</harakiri>
<reload-mercy>8</reload-mercy>
<cpu-affinity>1</cpu-affinity>
<stats>/tmp/stats.socket</stats>
<max-requests>2000</max-requests>
<limit-as>512</limit-as>
<reload-on-as>256</reload-on-as>
<reload-on-rss>192</reload-on-rss>
<no-orphans/>
<vacuum/>
</uwsgi>
我的 INI 配置是默认的。
任何帮助 uWSGI 加载 python 插件的帮助都将不胜感激。
答案1
您需要安装该插件。
sudo apt-get install uwsgi-plugin-python3
答案2
对于 ubuntu 和 python3:确保“which uwsgi”的结果是:/usr/local/bin/uwsgi 并在 .ini 文件中删除以下设置:plugin=python3
然后重试。
答案3
我想将此作为评论发布,但声誉不够。
如果您使用 pip 或 make 安装了 uwsgi(或者进行了自定义构建),那么您的 python 插件将被构建到二进制文件中,因此不会创建为共享库(.so 文件)。<plugin>python</plugin>
在这种情况下,删除该行应该可以解决问题,因为这不是必需的,但会破坏设置。
类似问题的解决方案是这里解释。
答案4
我最后用了Phusion 乘客运行我的应用程序。这就像配置和运行 Nginx 一样简单。