我正在尝试使用金字塔设置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文件。
有没有办法获取详细日志,如果有,请告诉我。 提前致谢
答案 0 :(得分:12)
检查
virtualenv = /root/path/to/virtualenv
指向正确的道路。 我通过修复这个错误的路径解决了我的错误。
答案 1 :(得分:4)
在我的情况下,它基本上是因为我使用python 2.7作为主要解释器,uwsgi选择pyhon3插件。您可能需要使用以下方法强制它:
插件= python32
其中python32
是pythhon3插件的合适名称。
答案 2 :(得分:3)
我今天也遇到了这个问题,我尝试设置plugins=python34
,但它在Ubuntu 14.04和Python 3.4.3上不起作用
这就是我为解决这个问题而采取的措施:
sudo pip uninstall uwsgi
运行sudo pip install uwsgi
时出现问题,然后先运行:
sudo apt-get install python-dev
(sudo)pip install uwsgi
答案 3 :(得分:2)
运行uwsgi命令(带有您的选项),如下所示:
/<path-to-your-virtualenv-bin>/uwsgi --http :8008 --module project.wsgi --venv /<path-to-your-virtualenv> --chdir /<path-to-your-project>
你会发现问题。
你错过了模块参数吗?
答案 4 :(得分:2)
刚遇到同样的问题。之后我意识到我在virtualenv中安装了带pip install uwsgi
的uwsgi。一旦我离开了virtualenv,我就在本地系统上安装了uwsgi
pip3 install uwsgi
(注意我写的是pip而不是pip3)。所以我用pip3 uninstall uwsgi
卸载了,我重复了pip install uwsgi
。像魅力一样工作。
答案 5 :(得分:1)
我有类似的问题。就我而言,问题出在uid
的{{1}}和guid
参数中。 uwsgi.ini
用户无权在virtualenv中运行python。
答案 6 :(得分:0)
我遇到了类似的错误消息,但是有一个python版本变体:
Python version: 3.4.3 (default, Nov 28 2017, 16:44:58) [GCC 4.8.4]
这是因为尝试使用python3.6虚拟环境,但uwsgi正在为python3.4设置。我使用python3.4重新设置虚拟环境,一切都很顺利。
答案 7 :(得分:0)
在Edward's answer的基础上,我改用uWSGI
而不是pip3.6
重新安装了pip3
,Python 3.4.8是服务器上的默认Python 3:
$ python3 --version
Python 3.4.8
答案 8 :(得分:0)
检查 import java.util.Scanner;
public class Recursion
{
public static String[] reverse(int m, int n, String[] str)
{
String[] p = new String[str.length];
if (m == n) return str;
else if (m > n) return str;
else
{
str[m] = p[n];
str[n] = p[m];
return reverse(m+1, n-1, str);
}
}
public static void main(String[] args)
{
Scanner enter = new Scanner(System.in);
System.out.print("t = ");
int t = enter.nextInt();
System.out.print("s = ");
String str = enter.nextLine();
String[] Strings = str.split(" ");
int k = Strings.length;
if (t == 1)
{
for (String s : Strings)
System.out.println(s);
System.out.println("The reversal is");
reverse(k-k, k, Strings);
for (String s : Strings)
System.out.println(s);
}
}
}
的路径。确保您没有使用以下内容:virtualenv
。
~/.virtualenvs/xxx
符号指向用户的主目录。因此,对于不同的用户,此路径将指向不同的位置。
如果您不太确定,请将~
移到virtualenv
之类的地方。