Форум программистов, компьютерный форум, киберфорум
Debian, Kali Linux, Raspbian, Astra Linux
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.96/25: Рейтинг темы: голосов - 25, средняя оценка - 4.96
15 / 2 / 1
Регистрация: 18.09.2015
Сообщений: 227

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

10.06.2020, 15:18. Показов 5581. Ответов 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
1135 / 391 / 86
Регистрация: 30.08.2017
Сообщений: 2,418
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
1135 / 391 / 86
Регистрация: 30.08.2017
Сообщений: 2,418
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
1135 / 391 / 86
Регистрация: 30.08.2017
Сообщений: 2,418
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
1135 / 391 / 86
Регистрация: 30.08.2017
Сообщений: 2,418
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
Ответ Создать тему
Новые блоги и статьи
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек SDL3 и Box2D из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия SDL 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual. . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru