15 / 2 / 1
Регистрация: 18.09.2015
Сообщений: 227

Ошибка запуска uwsgi в связке с django

10.06.2020, 15:18. Показов 5600. Ответов 13
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте. Пытаюсь запустить связку django+uwsgi. Прописал следующие настройки в конфигурационном файле для uwsgi:
Bash
1
2
3
4
5
6
7
[uwsgi]
plugins = python37
pythonpath = /usr/bin/python3
virtualenv = /home/daniil/projects/uwsgi-tutorial/env/
chdir = /home/daniil/projects/xiaomi/
env = DJANGO_SETTINGS_MODULE=/xiaomi/xiaomi.settings
module = django.core.handlers.wsgi:WSGIHandler()
При запуске:
Bash
1
uwsgi --ini /home/daniil/projects/xiaomi/xiaomi.ini
Выдает ошибку:
Bash
1
2
3
4
!!! Python Home is not a directory: /home/daniil/projects/uwsgi-tutorial/env/ !!!
Set PythonHome to /home/daniil/projects/uwsgi-tutorial/env/
Fatal Python error: initfsencoding: Unable to get the locale encoding
ModuleNotFoundError: No module named 'encoding'
Т.е., я так понимаю, uwsgi почему-то в качестве родительской директории берет /home/daniil/projects/uwsgi-tutorial/env/, что вообще не понятно, потому что в конфигурационном файле для pythona прописан путь: /usr/bin/python3.

Подскажите, пожалуйста, в чем может быть дело. Я не особо уверен в настройках .ini, может там где ошибка?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
10.06.2020, 15:18
Ответы с готовыми решениями:

HTTP Headers в связке Django + uwsgi + nginx
Доброго времени суток. Пилим бэк авторизации для джанго использующий GSSAPI для авторизации пользователей, и GSSAPI для выполнения...

Nginx+uwsgi+django: почему не подключается сокет?
Не удается деплойнуть сайт на джанго. Владелец сокета рут. Папка с сайтом /jion_capital Сокет лежит в ней Nginx включен, линк...

Ошибка django: DoesNotExist at /catalog/ django
Здравствуйте. Пишу простейший сайт на django. Пока в нем есть верхняя панель навигации и боковое меню слева, содержание которого меняется в...

13
1141 / 395 / 88
Регистрация: 30.08.2017
Сообщений: 2,440
10.06.2020, 19:29
Уже месяца 4 хожу кругами как раз вокруг python, django, nginx... ну и Ansible до кучи))... Никак не заставлю себя поковырять эту фигню.... Ну вот что мне вискарик нашептал.
1. а обязательно pythonpath определять? уберите. Вообще при использовании виртуальных окружений у Вас должен питон в нём и быть - сцылки в директории bin виртокружения. Ну и не забудьте вообще в него перейти
Bash
1
source python_projects/my_super_puper_projetc_of_perestroyka_and_balalayka/bin/activate
2. env = DJANGO_SETTINGS_MODULE=xiaomi.settings - наверно...
Ну пока вискарик так нашептал. Имхо у Вас смесь виртуального окружения в настройках и ... эээ... реального))
0
15 / 2 / 1
Регистрация: 18.09.2015
Сообщений: 227
10.06.2020, 20:19  [ТС]
Цитата Сообщение от _sg2 Посмотреть сообщение
Вообще при использовании виртуальных окружений у Вас должен питон в нём и быть
Правильно понимаю, что тогда нужно отдельное виртуальное окружение для uwsgi и отдельное для всего, что используется джангой (python и прочие пакеты)? Просто как-то не комильфо постоянно между окружениями переключаться.
0
1141 / 395 / 88
Регистрация: 30.08.2017
Сообщений: 2,440
10.06.2020, 21:32
ну дык весь смак ВО именно в том, что вы настраиваете СВОЁ ВО и в нём творите! И его потом в продакш и пропихиваете...
ЗЫ. Мои слова подвергайте сомнению. Ну кроме как файерволла... Вот честно, обиделся...
ЗЫ.... Пришла мелкая и всё забыл.. Вискрь - он такой. Не кушайте его!!
0
15 / 2 / 1
Регистрация: 18.09.2015
Сообщений: 227
11.06.2020, 12:06  [ТС]
Цитата Сообщение от _sg2 Посмотреть сообщение
уберите
Даже без прописанного в uwsgi.ini pythonpath выдает ту же ошибку. Почему-то автоматом ищет python в активированном виртуальном окружении.

Добавлено через 21 минуту
В итоге теперь почему-то не жалуется на pythonpath, но не может найти исполняемое приложение, т.е., я так понимаю, не видит manage.py:
Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
uwsgi --ini /home/daniil/projects/xiaomi/xiaomi.ini 
[uWSGI] getting INI configuration from /home/daniil/projects/xiaomi/xiaomi.ini
*** Starting uWSGI 2.0.18-debian (64bit) on [Thu Jun 11 11:57:54 2020] ***
compiled with version: 8.2.0 on 10 February 2019 02:42:46
os: Linux-4.19.0-9-amd64 #1 SMP Debian 4.19.118-2 (2020-04-29)
nodename: debian
machine: x86_64
clock source: unix
pcre jit disabled
detected number of CPU cores: 12
current working directory: /home/daniil/projects/xiaomi
detected binary path: /usr/bin/uwsgi-core
uWSGI running as root, you can use --uid/--gid/--chroot options
*** WARNING: you are running uWSGI as root !!! (use the --uid flag) *** 
chdir() to /home/daniil/projects/xiaomi/
*** WARNING: you are running uWSGI without its master process manager ***
your processes number limit is 63337
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 bound to TCP address 127.0.0.1:8001 fd 3
uWSGI running as root, you can use --uid/--gid/--chroot options
*** WARNING: you are running uWSGI as root !!! (use the --uid flag) *** 
uWSGI running as root, you can use --uid/--gid/--chroot options
*** WARNING: you are running uWSGI as root !!! (use the --uid flag) *** 
your server socket listen backlog is limited to 100 connections
your mercy for graceful operations on workers is 60 seconds
mapped 72920 bytes (71 KB) for 1 cores
*** Operational MODE: single process ***
*** no app loaded. going in full dynamic mode ***
uWSGI running as root, you can use --uid/--gid/--chroot options
*** WARNING: you are running uWSGI as root !!! (use the --uid flag) *** 
*** uWSGI is running in multiple interpreter mode ***
!!!!!!!!!!!!!! WARNING !!!!!!!!!!!!!!
no request plugin is loaded, you will not be able to manage requests.
you may need to install the package for your language of choice, or simply load it with --plugin.
!!!!!!!!!!! END OF WARNING !!!!!!!!!!
spawned uWSGI worker 1 (and the only) (pid: 1116, cores: 1)
В чем может быть дело? Директория, в которой лежит файл manage.py вроде прописана в конфигах uwsgi.
0
1141 / 395 / 88
Регистрация: 30.08.2017
Сообщений: 2,440
11.06.2020, 13:47
Блин... вот зачем выпимши за комп садиться-то?...

uWSGI running as root, you can use --uid/--gid/--chroot options
из матюков очень выделяются просьбы увсги запустить его от простого пользователя. Зачем Вы от рута работаете?
0
15 / 2 / 1
Регистрация: 18.09.2015
Сообщений: 227
11.06.2020, 14:40  [ТС]
Цитата Сообщение от _sg2 Посмотреть сообщение
Зачем Вы от рута работаете?
Сменил на обычного пользователя. Теперь другая ошибка:
Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
[uWSGI] getting INI configuration from /home/daniil/projects/django/xiaomi_project/xiaomi/xiaomi.ini
open("./python37_plugin.so"): No such file or directory [core/utils.c line 3724]
!!! UNABLE to load uWSGI plugin: ./python37_plugin.so: cannot open shared object file: No such file or directory !!!
*** Starting uWSGI 2.0.18 (64bit) on [Thu Jun 11 14:13:35 2020] ***
compiled with version: 8.3.0 on 11 June 2020 10:42:47
os: Linux-4.19.0-9-amd64 #1 SMP Debian 4.19.118-2 (2020-04-29)
nodename: debian
machine: x86_64
clock source: unix
pcre jit disabled
detected number of CPU cores: 12
current working directory: /home/daniil/projects/django
detected binary path: /home/daniil/projects/django/xiaomi_project/bin/uwsgi
chdir() to /home/daniil/projects/django/xiaomi_project/xiaomi
*** WARNING: you are running uWSGI without its master process manager ***
your processes number limit is 63464
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 bound to TCP address 127.0.0.1:8001 fd 3
Python version: 3.7.3 (default, Dec 20 2019, 18:57:59)  [GCC 8.3.0]
Set PythonHome to /home/daniil/projects/django/xiaomi_project/xiaomi
Fatal Python error: initfsencoding: Unable to get the locale encoding
ModuleNotFoundError: No module named 'encodings'
 
Current thread 0x00007fdf8755d3c0 (most recent call first):
Аварийный останов
/home/daniil/projects/django/xiaomi_project - папка виртуального окружения.
В папке /home/daniil/projects/django/xiaomi_project/bin действительно нет файла python37_plugin.so
Но вне виртуального окружения такой файл есть в папке /usr/lib/uwsgi/plugins/

Сейчас не особо понимаю, как в итоге установить этот файл для виртуального окружения, и что делать с отсутствием encodings в виртуальном окружении?
В папке /usr/lib/python3.7/ модуль encodings есть.
0
1141 / 395 / 88
Регистрация: 30.08.2017
Сообщений: 2,440
11.06.2020, 19:34
может активировать окружение и в нём сделать
Bash
1
pip install encodings
?
Или как там это делается? Повторюсь, вокруг питона хожу кругами.
Слепой глухому про радугу объясняет))

Добавлено через 4 часа 26 минут
так... а uwsgi установлен глобально или в виртокружение?
жара, лень... так и не доделал на своём стенде Вашу ситуёвину... Но uwsgi в ВО развернул. Осталось запустить))
0
15 / 2 / 1
Регистрация: 18.09.2015
Сообщений: 227
12.06.2020, 00:30  [ТС]
Цитата Сообщение от _sg2 Посмотреть сообщение
uwsgi установлен глобально или в виртокружение
И там, и там стоит.
В конфигах изменил путь home, теперь на encodings не жалуется. При запуске из /usr/lib/uwsgi/plugins/ командой uwsgi --ini ... (путь до .ini файла) пишет следующее:
!!! ... undefined symbol: uwsgi_legion_lord_scroll !!!
То есть сам плагин видит, но в нем что-то не определяется. Пытался понять, что такое scroll_system в uwsgi, пока особо не вник. Но кажется в подобных ситуациях, когда undefined symbol вылезает при чтении плагина, надо как-то привязывать uwsgi к плагину для конкретной версии питона.

Добавлено через 4 часа 43 минуты
Да, а ларчик просто открывался. Стоило зайти на официальный сайт uwsgi, там все четко объяснено. Конфиг в базовой версии должен выглядеть так:
Bash
1
2
3
4
5
6
7
[uwsgi]
http = 127.0.0.1:3031
chdir = /home/foobar/myproject/
module = mysite.wsgi:application
processes = 4
threads = 2
stats = 127.0.0.1:9191
http - поскольку использую связку uwsgi+django, пока без nginx. Если с ним, то вместо http - socket.
0
12.06.2020, 02:13

Не по теме:

Цитата Сообщение от Dancing_god Посмотреть сообщение
Стоило зайти на официальный сайт uwsgi, там все четко объяснено.
документацию придумали для трусов. настоящие герои всегда лишь тупо фигачат головой об стену по методу научного тыка!

0
12.06.2020, 08:54

Не по теме:

оооо

0
5 / 5 / 0
Регистрация: 25.09.2017
Сообщений: 569
22.01.2022, 00:56
Цитата Сообщение от _sg2 Посмотреть сообщение
Блин... вот зачем выпимши за комп садиться-то?...
uWSGI running as root, you can use --uid/--gid/--chroot options

А если запускать с такими флагами, то:

unable to load configuration from project.sock

Добавлено через 1 час 20 минут
По хорошему тему бы перенести в раздел WSGI

Добавлено через 30 минут
Настройки конфигурации nginx:

Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
upstream django {
    server unix:///home/var/www/project/my_project/my_project.sock;
    }
server {
    root  /home/var/www/project/my_project/templates/sections; #здесь находится индексный файл
    index index.html index.htm index.nginx-debian.html;
    listen 8085;
    server_name checklist.biflow.co;
    charset utf-8;
 
    location /{
#   root /home/var/www/project/my_project;
    root /home/var/www/project/my_project/templates/sections;
        include /etc/nginx/uwsgi_params;
        uwsgi_pass django;
    }
    
    location /static/{
        alias /home/var/www/project/my_project/static/;
    }
}

settings.py


Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
DEBUG = False
 
ALLOWED_HOSTS = ['*']
 
STATIC_URL = '/static/'
 
STATIC_ROOT = os.path.join(BASE_DIR, 'static') 
 
STATICFILES_FINDERS = (
    'django.contrib.staticfiles.finders.FileSystemFinder',
    'django.contrib.staticfiles.finders.AppDirectoriesFinder',
    )
 
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
MEDIA_URL = '/media/'
Настройки uwsgi (я, правда, не знаю где хранить точно этот конфиг):

etc/uwsgi/apps-available/my_project.ini

Bash
1
2
3
4
5
6
7
8
9
10
[uwsgi]
chdir=/home/var/www/project/my_project
env=DJANGO_SETTINGS_MODULE=my_project.settings
module=my_project/wsgi.py
socket=/home/var/www/project/my_project/my_project.sock
chmod-socket=775
workers=1
master=true
processes=2
vacuum=true
После команды:

Bash
1
uwsgi --socket my_project.sock --module my_project.wsgi
Когда перехожу по url с портом 8085 вижу 502 Bad Request. Uwsgi установлен в ВО, как у автора. На файл конфигурации nginx не ругается. Может, я что-то пропустил.


Да, он мне пытается сказать, чтобы я не запускал с правами root:

Bash
1
2
3
4
5
detected binary path: /home/var/www/project/my_project/venv/bin/uwsgi
!!! no internal routing support, rebuild with pcre support !!!
uWSGI running as root, you can use --uid/--gid/--chroot options
*** WARNING: you are running uWSGI as root !!! (use the --uid flag) ***
*** WARNING: you are running uWSGI without its master process manager ***
Но с такими флагами он не запускается вообще.

Добавлено через 1 час 8 минут
etc/uwsgi/apps-available/my_project.ini


Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
[uwsgi]
chdir=/home/var/www/project/my_project
env=DJANGO_SETTINGS_MODULE=my_project.settings
module=my_project/wsgi.py
socket=/home/var/www/project/my_project/my_project.sock
home=/home/var/www/project/my_project/venv
processes=5
threads = 2
uid=www-data# я так понял, тут нужно указать www-data или какого-то пользователя файла .sock: /home/var/www/project/my_project/my_project.sock
gid=www-data#
master=true
vacuum=true
master = true
die-on-term = true
Но эффекта вообще нет:


Bash
1
uwsgi --gid www-data --socket my_project.sock --module my_project.wsgi
output:
Bash
1
2
*** WARNING: you are running uWSGI as root !!! (use the --uid flag) ***
*** uWSGI is running in multiple interpreter mode ***

с флагом --gid www-data:

output:
Bash
1
2
error removing unix socket, unlink(): Permission denied [core/socket.c line 198]
bind(): Address already in use [core/socket.c line 230]
0
5 / 5 / 0
Регистрация: 25.09.2017
Сообщений: 569
22.01.2022, 19:29
Изменил файл конфигурации uwsgi:
my_project.ini

Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
[uwsgi]
chdir=/home/var/www/project/my_project
env=DJANGO_SETTINGS_MODULE=my_project.settings
module=my_project.wsgi:application
socket=/home/var/www/project/checklist_wp/my_project.sock
home=/home/var/www/project/my_project/venv
daemonize=/var/log/uwsgi/my_project.log
virtualenv=/home/var/www/project/my_project/venv
processes=5
threads=2
max-requests=5000
uid=www-data
gid=www-data
master=True
vacuum=True
master=True
die-on-term=True
запускаю:

Bash
1
uwsgi --ini my_project.ini

Весь вывод:

Bash
1
 getting INI configuration from my_project.ini
В браузере переход на url, прописанном в конфиге nginx :
502 Bad Gateway

На этом всё. Я ничего не понимаю, делаю конфиги, как в инструкции django
0
5 / 5 / 0
Регистрация: 25.09.2017
Сообщений: 569
23.01.2022, 21:40
Так и не понял почему uwsgi берёт настройки из файла ini, но дальше не запускается. Кое-какой результат есть при такой последовательности команд:

Bash
1
2
cd /home/var/www/project/my_project
uwsgi --socket my_project.sock --plugins python38 --module my_projectwsgi --uid www-data --gid www-data
Но почему-то через какое-то время сайт перестаёт быть доступен. Приходится снова лезть на сервер по ssh и запускать заново.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
23.01.2022, 21:40
Помогаю со студенческими работами здесь

Появляется Exception TypeError после запуска Django проекта
Суть в следующем: Имеется в DjangoProject/urls.py: from django.conf.urls import url from django.contrib import admin urlpatterns =...

Ошибка запуска Eclipse. Исчезает ехе файл запуска
Привет всем :P Изучаю С++ на Eclipse. Создал проект Hello World. Нажимаю Run - все хорошо. Меняю немного код , дополняю его , совсем...

Ошибка в связке JavaFX and Maven
Помогите пожалуйста разобраться. С мавеном раньше не работал, а сейчас вот пришлось. Делаю диплом с JavaFX, потребовали мавен как...

Ошибка not found в связке с Silverlight
Добрый вечер, пытаюсь передать объект, у которого есть поле List<string> в Silverlight через WCF, но вылезает ошибка "Удаленный сервер...

При связке схемы данных происходит ошибка
Не обнаружен уникальный адрес для используемого поля главной таблицы. Кто знает помогите, работу на курсовую, срочно, заранее спасибо!!!


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Опции темы

Новые блоги и статьи
Валидация и контроль данных табличной части документа перед записью
Maks 22.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в КА2. Задача: контроль и валидация данных табличной части документа перед записью с учетом регламента компании. . .
Отчёт о затраченных материалах за определенный период с макетом печатной формы
Maks 21.04.2026
Отчёт из решения ниже размещён в конфигурации КА2. Задача: разработка отчёта по затраченным материалам за определённый период, с возможностью вывода печатной формы отчёта с шапкой и подвалом. В. . .
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2. Задача: отобразить спецтехнику, которая на данный момент находится в ремонте. Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
Запрет удаления строк ТЧ документа при определённом условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru