- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我试图在运行 Raspbian GNU/Linux 9 (stretch) 的 Raspberry Pi 上通过 uWSGI 运行 Django 应用程序,它附带发行版中的 Python 3.5,我编译并安装了 Python 3.6 作为替代方案。这些是我当前的 Python 安装:
我还为我的应用程序创建了一个基于 python3.6
的 virtualenv,位于 ~/.virtualenvs
。问题是该服务提示无法获取区域设置编码:
Fatal Python error: Py_Initialize: Unable to get the locale encoding
由于缺少模块:
ImportError: No module named 'encodings'
但是,如果我启动 virtualenv 并发出:
import encodings
它工作得很好:
>>> import encodings
>>> encodings
<module 'encodings' from '/home/ariel/.virtualenvs/you2ogg/lib/python3.6/encodings/__init__.py'>
这就是我的 service.ini
文件的样子:
[uwsgi]
plugins = python3
chdir = /srv/user/app/
module = app.wsgi
home = /home/user/.virtualenvs/app/
master = true
processes = 10
socket = /srv/user/app/app.sock
chmod-socket = 666
vacuum = true
uid = 1000
gid = 1000
这就是日志中关于我的服务的内容:
Wed Dec 20 11:29:51 2017 - *** Starting uWSGI 2.0.14-debian (32bit) on [Wed Dec 20 11:29:49 2017] ***
Wed Dec 20 11:29:51 2017 - compiled with version: 6.2.1 20161124 on 18 December 2016 15:05:38
Wed Dec 20 11:29:51 2017 - os: Linux-4.9.59-v7+ #1047 SMP Sun Oct 29 12:19:23 GMT 2017
Wed Dec 20 11:29:51 2017 - nodename: rpi3
Wed Dec 20 11:29:51 2017 - machine: armv7l
Wed Dec 20 11:29:51 2017 - clock source: unix
Wed Dec 20 11:29:51 2017 - pcre jit disabled
Wed Dec 20 11:29:51 2017 - detected number of CPU cores: 4
Wed Dec 20 11:29:51 2017 - current working directory: /
Wed Dec 20 11:29:51 2017 - writing pidfile to /run/uwsgi/app/you2ogg/pid
Wed Dec 20 11:29:51 2017 - detected binary path: /usr/bin/uwsgi-core
Wed Dec 20 11:29:51 2017 - setgid() to 1000
Wed Dec 20 11:29:51 2017 - setuid() to 1000
Wed Dec 20 11:29:51 2017 - chdir() to /srv/ariel/you2ogg/
Wed Dec 20 11:29:51 2017 - your processes number limit is 7346
Wed Dec 20 11:29:51 2017 - your memory page size is 4096 bytes
Wed Dec 20 11:29:51 2017 - detected max file descriptor number: 1024
Wed Dec 20 11:29:51 2017 - lock engine: pthread robust mutexes
Wed Dec 20 11:29:51 2017 - thunder lock: disabled (you can enable it with --thunder-lock)
Wed Dec 20 11:29:51 2017 - uwsgi socket 0 bound to UNIX address /run/uwsgi/app/you2ogg/socket fd 3
Wed Dec 20 11:29:51 2017 - uwsgi socket 1 bound to UNIX address /srv/ariel/you2ogg/you2ogg.sock fd 5
Wed Dec 20 11:29:51 2017 - Python version: 3.5.3 (default, Jan 19 2017, 14:11:04) [GCC 6.3.0 20170124]
Wed Dec 20 11:29:51 2017 - Set PythonHome to /home/ariel/.virtualenvs/you2ogg/
Fatal Python error: Py_Initialize: Unable to get the locale encoding
ImportError: No module named 'encodings'
Current thread 0x76f35000 (most recent call first):
但请注意,显然 uWSGI 坚持使用 Python 3.5 来实现谁知道什么,并且根据其他一些问题,设置 PYTHONPATH 解决了这个问题,但是我必须指出,这个应用程序在 Fedora 机器上运行完全正常,其中该 var 也未设置。
这里有什么问题吗?
最佳答案
终于找到问题所在了。事实证明,uWSGI 的 python 插件以某种方式绑定(bind)到了 python 版本,例如:
所以我必须按照this guide编译并手动安装我的Python 3.6插件。 :
PYTHON=python3.6 uwsgi --build-plugin "/usr/src/uwsgi/plugins/python python36"
mv python36_plugin.so /usr/lib/uwsgi/plugins/python36_plugin.so
chmod 644 /usr/lib/uwsgi/plugins/python36_plugin.so
现在,uWSGI 服务初始化日志中的 Python 版本显示为 Python 3.6.X,并且应用程序可以正常运行。它在 Fedora 中工作的原因可能是因为从 Fedora 26 开始,它就将 Python 3.6 作为默认的 python3 版本,所以也许该插件是开箱即用的兼容。
关于python - uWSGI找不到所有Python安装中都存在的模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47917291/
uWSGI 主进程有什么用? 和/或我可以在哪里阅读更多相关信息? 我找到了零文档。 最佳答案 您可以找到有关大师的一些信息here和 here 一般来说,主文件负责优雅地重新加载您的应用程序服务器(
我有多个基于 Flask 的 web 应用程序在 docker 容器中运行(它们的进程需要与主机操作系统隔离)。为了运行这些应用程序,我在容器内使用了 uWSGI 服务器。传入的请求应该通过订阅服务器
我正在尝试使用 uwsgi 进行一些非常复杂的配置。从长远来看,我试图让自己的事情变得更容易,自然而然,这样做,我正在使事情变得尽可能困难。 无论如何,我正在寻找魔法变量的完整列表。我能在 Emper
我开始使用 uWSGI,我想知道它的工作人员是否是非阻塞/基于事件的(就像 nginx 一样)。 假设我已经像这样启动了 uWSGI: uwsgi --http :8000 --wsgi-file t
我们的应用程序是为 Python 2.7 编写的。它有一个配置为使用 Python 2.7 的 virtualenv。系统安装的 uWSGI 是用 Python 2.6 构建的。 It seems t
我在这个页面 http://uwsgi-docs.readthedocs.org/en/latest/StatsServer.html并使用 uwsgitop但我不知道如何解释输出。文档也没有透露太多
我看到这里发布了许多 uWSGI 配置,我在工作中遇到的现有应用程序的配置也有填充了 100 到 1000 值的 max-requests。 在一定数量的请求后回收进程的目的是什么?您是否试图避免内存
我正在使用 uWSGI 运行一个 webpy 网络服务器,有些请求花费的时间太长。设置 harakiri 模式后,我注意到请求被终止后会再次重试。 是否可以禁用此行为? 运行命令为: /usr/loc
uwsgi 中的“mule farm”是什么,它有什么用?有一些使用示例吗?我没有在文档或其他任何地方找到任何东西。 最佳答案 一群有名字的骡子 --farm chickens:1,2,3. --fa
在学习Python web开发时候,可能会遇到诸如uwsgi,wsgi等名词,下面通过梳理总结探究它们之间的关系。 CGI CGI,(Common Gateway Interface)通用网关接口,是
我已经使用 uWSGI 部署了一个 WSGI 应用程序,但是 I am not using NGINX .如何使用 uWSGI's internal routing将 http 请求重定向到 http
我正在使用命令在 uWsgi 服务器中测试应用程序, uwsgi --http :9090 --wsgi-file myapp.py --callable app --processes 4 --th
我们有一个工作的 uwsgi 服务器,带有一些 RPC 调用(注意:我们能够使用 uwsgi.rpc 与进程对话,因此它们端的设置很好)。我们发现我们有一些进程没有在 uwsgi 下运行,但我们想要与
我正在尝试为我的 Django 项目设置 uwsgi。它运行良好 ./manage.py runserver 0.0.0.0:9010 但是当我尝试 uwsgi --http :9010 --chd
我是 Linux 开发的新手。我对阅读的文档有点困惑。我的最终目标是托管一个简单的 python 支持的 Web 服务,该服务将检查传入的有效负载,并将其转发到其他服务器。这应该不到 30 行 pyt
我的 Django 应用程序倾向于使用 uwsgi+nginx,谁能分享启动我的 uwsgi 进程的最佳方法?有没有人有调整uwsgi的经验? 最佳答案 在 OSX 上启动 Unice 上的 Upst
从 ini 文件启动 uwsgi 时崩溃,堆栈跟踪如下: Traceback (most recent call last):
我用 Django 编写了一个服务器应用程序,并使用 Tastypie 为移动应用程序提供 API,并使用本地 MySQL 服务器为数据库提供服务。 在进程被杀死或结束之前,查询似乎被缓存了。如果我在
我正在开发一个基于 Python 的应用程序(HTTP -- REST 或 jsonrpc 接口(interface)),它将用于生产自动化测试环境。这将连接到运行所有测试脚本的 Java 客户端。即
我尝试在 nginx+uwsgi、os - debian (3.1.0-1-amd64 x86_64) 上为 django 建立网络服务器 nginx 1.1.8-1,uwsgi 0.9.8.3-1
我是一名优秀的程序员,十分优秀!