2017-02-07 2 views
1

У меня есть следующий вассал конфигурация в /etc/uwsgi/vassals/gsd.ini:Джанго, pyenv, uwsgi - ModuleNotFoundError: модуль не назван 'Джанго'

[uwsgi] 
plugins = python 
env = DJANGO_SETTINGS_MODULE=%n.settings 
virtualenv = /home/toogy/.pyenv/versions/%n 
chdir = /home/webapps/%n 
module = %n.wsgi:application 
master = true 
vacuum = true 
pidfile = /tmp/uwsgi-%n.pid 
socket = /tmp/uwsgi-%n.sock 
daemonize = /var/log/uwsgi/%n.log 
chmod-socket = 666 
uid = toogy 
gid = toogy 

Вот uwsgi журнал я получаю

Tue Feb 7 10:49:12 2017 - received message 1 from emperor 
...gracefully killing workers... 
Gracefully killing worker 1 (pid: 31406)... 
worker 1 buried after 1 seconds 
binary reloading uWSGI... 
chdir() to /etc/uwsgi/vassals 
closing all non-uwsgi socket fds > 2 (max_fd = 1024)... 
found fd 3 mapped to socket 0 (/tmp/uwsgi-gsd.sock) 
running /usr/bin/uwsgi 
*** has_emperor mode detected (fd: 7) *** 
[uWSGI] getting INI configuration from gsd.ini 
*** Starting uWSGI 2.0.14 (64bit) on [Tue Feb 7 10:49:13 2017] *** 
compiled with version: 6.3.1 20170109 on 18 January 2017 00:35:47 
os: Linux-3.14.32-xxxx-grs-ipv6-64 #7 SMP Wed Jan 27 18:05:09 CET 2016 
nodename: renard 
machine: x86_64 
clock source: unix 
pcre jit disabled 
detected number of CPU cores: 4 
current working directory: /etc/uwsgi/vassals 
detected binary path: /usr/bin/uwsgi 
chdir() to /home/webapps/gsd 
your processes number limit is 15700 
your memory page size is 4096 bytes 
detected max file descriptor number: 1024 
lock engine: pthread robust mutexes 
thunder lock: disabled (you can enable it with --thunder-lock) 
uwsgi socket 0 inherited UNIX address /tmp/uwsgi-gsd.sock fd 3 
Python version: 3.6.0 (default, Jan 16 2017, 12:12:55) [GCC 6.3.1 20170109] 
PEP 405 virtualenv detected: /home/toogy/.pyenv/versions/gsd 
Set PythonHome to /home/toogy/.pyenv/versions/gsd 
*** Python threads support is disabled. You can enable it with --enable-threads *** 
Python main interpreter initialized at 0x39d21f0 
your server socket listen backlog is limited to 100 connections 
your mercy for graceful operations on workers is 60 seconds 
mapped 145536 bytes (142 KB) for 1 cores 
*** Operational MODE: single process *** 
added /home/webapps/gsd/ to pythonpath. 
Traceback (most recent call last): 
    File "/home/webapps/gsd/gsd/wsgi.py", line 12, in <module> 
    from django.core.wsgi import get_wsgi_application 
ModuleNotFoundError: No module named 'django' 
unable to load app 0 (mountpoint='') (callable not found or import error) 
*** no app loaded. going in full dynamic mode *** 
*** uWSGI is running in multiple interpreter mode *** 
gracefully (RE)spawned uWSGI master process (pid: 27844) 
spawned uWSGI worker 1 (pid: 32312, cores: 1) 

Он не может найти django и я понятия не имею, потому что uwsgi, кажется, обнаруживает среду python (в которой djangoустановлен).

Кроме того, он говорит Python version: 3.6.0, а моя версия virtualenv Python - . 3.5.2. Я не знаю, должно ли это случиться. Системная версия Python: 3.6.0.

Я использую последние версии официальных пакетов uwsgi и uwsgi-plugins-python.

ответ

4

Проблема заключалась в том, что общесистемная версия python, связанная с uwsgi, должна быть такой же, как у виртуального, что, я думаю, очень глупо.

+0

Вы спасли мой день! Это действительно глупое требование. – zezollo

+0

@valentin Как проверить, оба ли они одинаковы? Если нет, как я могу их исправить? –

+0

@SaitejaParsi, чтобы узнать вашу системную версию Python: 'python --version' с любого терминала и узнать версию UWSGI Python, просто запустите uwsgi и прочитайте журналы, чтобы узнать, какая версия UWSGI Python используется. То, как я исправил это в то время, было создание нового env с версией Python, используемой UWSGI. – valentin

1

взгляд на это на gsd.ini:

virtualenv = /home/toogy/.pyenv/versions/%n 

вы установите django под этим virtualenv?

+0

Благодарим вас за ответ. Он действительно установлен. – valentin

+0

Если вы считаете полезным, пожалуйста, проголосуйте;) – Mellcap

Смежные вопросы