web-dev-qa-db-fra.com

uWSGI échoue avec aucun module nommé encoding Error

J'essaie de configurer uWSGI avec Pyramid, mais j'obtiens cette erreur lorsque j'essaie uwsgi --ini-paste development.ini

Python version: 3.2.3

Message d'erreur:

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

Voici ce que j'ai dans 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

Je suppose que j'ai tout vérifié, y compris ce qui suit

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

J'utilise virtualenv et uWSGI a été installé pendant que l'environnement était actif. J'ai également vérifié que la bibliothèque de mon environnement virtuel contient un paquet nommé encoding (pointant vers mon installation principale de python3.2)

J'ai également vérifié ceci répondre et cela

J'avais précédemment installé uWSGI lorsque mon virtualenv n'était pas actif, mais je l'ai ensuite installé correctement et j'ai supprimé les fichiers exécutables et les fichiers py de l'installation précédente.

Existe-t-il un moyen d'obtenir des journaux détaillés? Merci de me le faire savoir s'il en existe. Merci d'avance

16
Dev Maha

dans mon cas, c’est essentiellement parce que j’ai utilisé python 2.7 comme interprète principal et que uwsgi a choisi le plugin pyhon3. Vous pourriez avoir besoin de le forcer en utilisant:

plugins = python32

python32est le nom approprié pour votre plugin pythhon3.

Avez-vous vérifié ceci: Le plugin uwsgi python3 ne fonctionne pas ?

3
jb.

Regarde ça

virtualenv = /root/path/to/virtualenv

pointe vers le bon chemin. J'ai résolu mon erreur en corrigeant ce chemin mal typé.

11
Louis M

J'ai également rencontré ce problème aujourd'hui et j'ai essayé de définir plugins=python34, mais cela ne fonctionnait pas sous Ubuntu 14.04 et Python 3.4.3.

Voici ce que j'ai fait pour résoudre ce problème:

  1. Sudo pip uninstall uwsgi

  2. quelque chose ne va pas quand je lance Sudo pip install uwsgi, et lancez ceci en premier:

    Sudo apt-get install python-dev

  3. (Sudo)pip install uwsgi

3
bovenson

Exécutez la commande uwsgi (avec vos options) exactement comme la ligne suivante:

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

Vous trouverez les problèmes.

Avez-vous manqué votre module param?

2
gzerone

Juste eu le même problème. Ce que j’ai réalisé par la suite, c’est que j’ai installé uwsgi avec pip install uwsgi dans virtualenv. Une fois que j'ai quitté virtualenv, j'ai installé uwsgi sur le système local avec pip3 install uwsgi (remarquez que j'ai écrit pip au lieu de pip3). J'ai donc désinstallé avec pip3 uninstall uwsgi et j'ai répété avec pip install uwsgi. Travaillé comme un charme.

2
Albêr

J'ai rencontré un message d'erreur similaire, mais avec une variante de version python:

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

Cela est dû à l'utilisation d'un environnement virtuel python3.6, mais uwsgi étant configuré pour python3.4. J'ai reconfiguré l'environnement virtuel en utilisant python3.4 et tout allait bien.

0
Edward Moffett