25

我正在尝试使用 Pyramid 设置 uWSGI,但在尝试时出现此错误uwsgi --ini-paste development.ini

Python version: 3.2.3

错误信息:

uwsgi socket 0 bound to UNIX address /tmp/uwsgi.sock fd 3
Python version: 3.2.3 (default, Oct 19 2012, 20:08:46)  [GCC 4.6.3]
Set PythonHome to /root/path/to/virtualenv
Fatal Python error: Py_Initialize: Unable to get the locale encoding
ImportError: No module named encodings

这是我在 development.ini 中的内容

[uwsgi]
socket = /tmp/uwsgi.sock
master = true


processes = 4

harakiri = 60
harakiri-verbose = true
limit-post = 65536
post-buffering = 8192

daemonize = ./uwsgi.log
pidfile = ./pid_5000.pid

listen = 256 

max-requests = 1000

reload-on-as = 128 
reload-on-rss = 96
no-orphans = true

log-slow = true
virtualenv = /root/path/to/virtualenv

我想我已经检查了所有可能的内容,包括以下内容

echo LANG:$LANG LC_CTYPE:$LC_CTYPE
LANG:en_US.UTF-8 LC_CTYPE:

我正在使用 virtualenv,并且在环境处于活动状态时安装了 uWSGI。我还检查了我的虚拟环境的 lib 有一个名为 encoding 的包(指向我的主要 python3.2 安装)

我也检查了这个答案和这个

我之前在我的 virtualenv 不活动时安装了 uWSGI,但后来我正确安装了它并从之前的安装中删除了可执行文件和 py 文件。

有没有办法获取详细的日志,如果有请告诉我。提前致谢

4

9 回答 9

24

检查

virtualenv = /root/path/to/virtualenv

指向正确的路径。我通过修复这个输入错误的路径解决了我的错误。

于 2016-09-16T21:34:16.940 回答
7

就我而言,这基本上是因为我使用 python 2.7 作为主要解释器,而 uwsgi 选择了 pyhon3 插件。您可能需要使用以下命令强制它:

插件=python32

python32您的 pythhon3 插件的合适名称在哪里。

你检查过这个:uwsgi python3 插件不起作用

于 2013-04-29T20:58:57.743 回答
3

我今天也遇到了这个问题,我尝试设置plugins=python34,但是在 Ubuntu 14.04 和 Python 3.4.3 上都不行

这是我为解决它所做的:

  1. sudo pip uninstall uwsgi

  2. 我跑的时候出了点问题sudo pip install uwsgi,先运行这个:

    sudo apt-get install python-dev

  3. (sudo)pip install uwsgi

于 2016-04-23T09:58:21.903 回答
3

刚遇到同样的问题。后来我意识到我pip install uwsgi在 virtualenv 中安装了 uwsgi。离开 virtualenv 后,我在本地系统上安装 pip3 install uwsgi了 uwsgi(注意我写的是 pip 而不是 pip3)。所以我卸载了pip3 uninstall uwsgi并重复了pip install uwsgi. 像魅力一样工作。

于 2016-06-03T21:24:24.010 回答
2

像以下行一样运行 uwsgi 命令(使用您的选项):

/<path-to-your-virtualenv-bin>/uwsgi --http :8008 --module project.wsgi --venv /<path-to-your-virtualenv> --chdir /<path-to-your-project>

你会发现问题。

你错过了你的模块参数吗?

于 2014-11-26T10:32:36.003 回答
2

我有类似的问题。就我而言,问题出在uid,guid的参数中uwsgi.iniwww-data用户无权在 virtualenv 中运行 python。

于 2020-02-24T14:14:54.580 回答
1

我遇到了类似的错误消息,但有一个 python 版本变体:

Python version: 3.4.3 (default, Nov 28 2017, 16:44:58)  [GCC 4.8.4]

这是因为尝试使用 python3.6 虚拟环境,但 uwsgi 是为 python3.4 设置的。我使用 python3.4 重新设置了虚拟环境,一切都很好。

于 2018-05-26T13:13:12.073 回答
0

基于Edward 的回答,我改为uWSGI使用pip3.6而不是重新安装pip3,Python 3.4.8 是服务器上的默认 Python 3:

$ python3 --version
Python 3.4.8
于 2019-08-18T11:13:12.553 回答
0

检查virtualenv. 确保你没有使用这样的东西:~/.virtualenvs/xxx.

~符号指向用户的主目录。所以对于不同的用户,这条路径会指向不同的位置。

如果您不是很放心,请将virtualenv移至/home/.virtualenvs.

于 2020-02-04T11:14:40.950 回答