500 - внутренняя ошибка сервера!!- Проблема в wsgi в приложении django, переходящем с python2.7 на python3.6 - PullRequest
0 голосов
/ 15 декабря 2018

Я получаю 500 Internal Server Error при переносе моего приложения django с python2.7 на python3.6.Я создал новый virtualenv и создал все приложения по отдельности.Virtualenv определен в файле uwsgi.ini

home = /home/netadc/.venvs1/netadc

Я установил все пакеты, используя pip3.6.Я не уверен, что мне не хватает.Каждый конфиг в uwsgi такой же, как и python2.7, когда он работал. Я использую uwsgi 2.0.13.Я также перезапустил nginx.Существует ли отдельная версия uwsgi для python3, которую я не могу найти?Разрешения сокета также такие же, как и раньше.Пожалуйста, помогите.

Команда для запуска wsgi: - /home/netadc/.venvs1/netadc/bin/uwsgi --ini /home/netadc/apps/netadc/netadc/uwsgi/netadc_uwsgi.ini --enable-threads

В журналах wsgi я вижу: - --- no python application found, check your startup logs for errors --- [pid: 13634|app: -1|req: -1/3] x.x.x.x () {42 vars in 1029 bytes} [Mon Dec 17 09:04:40 2018] GET /netadc/home => generated 21 bytes in 0 msecs (HTTP/1.1 500)

Журналы доступа в nginx показывают:- x.x.x.x - - [17/Dec/2018:09:05:43 -0700] "GET /netadc/home HTTP/1.1" 500 32

В журналах ошибок nginx ничего не появляется.

Когда я запускаю файл manage.py, я вижу: - ImportError: bad magic number in 'lib': b'\x03\xf3\r\n'

Я удалил все.pyc-файлы, но иногда оболочка manage.py зависает, а иногда открывается нормально.Но снова через некоторое время я получу ошибку магического числа, как указано выше.

Когда я возвращаю virtualenv обратно к моему предыдущему virtualenv в файле uwsgi.ini, который использует python2.7, я получаю некоторые журналы ошибок на uwsgi.

home = /home/netadc/.venvs/netadc Журнал: - File "./ivpn/rest_appviewx.py", line 29 print('Server IP has NAT already. So no QIP update needed.', end=' ') ^ SyntaxError: invalid syntax Мой UWSGI INI-файл: -

[uwsgi]

#uid    =       nginx
#gid    =       nginx

# Django-related settings
env     =       HTTPS=on

# the base directory (full path)
chdir   =       /home/netadc/apps/netadc

# Django's wsgi file
module  =       netadc.wsgi

# the virtualenv (full path)
home    =       /home/netadc/.venvs1/netadc

pythonpath = /home/netadc/.venvs1/netadc/bin/python3.6
PythonHome = /home/netadc/.venvs1/netadc/


# master
master   =      true

# maximum number of worker processes
processes       = 10

buffer-size =   65536

# the socket (use the full path to be safe
socket  = /home/netadc/apps/netadc/netadc/uwsgi/tmp/netadc.sock

# read post data by default
post-buffering  =   1

# ... with appropriate permissions - may be needed
#chmod-socket    = 666

# daemonize
daemonize       =       true

# logging
logger  =       
file:/home/netadc/apps/netadc/netadc/uwsgi/tmp/netadc_uwsgi.log

# clear environment on exit
vacuum  =       true
...