Проблема с conda env при использовании uwsgi - PullRequest
0 голосов
/ 10 марта 2020

Я пытаюсь запустить django сервер с uwsgi, используя anaconda python на Ubuntu 16.04.6 LTS. Я создал среду conda и установил все зависимости.

Если я запускаю сервер django в dev (то есть python manage.py runserver), он работает без каких-либо проблем. Но когда я запускаю его с помощью uwsgi, я получаю «ImportError: невозможно импортировать имя _remove_dead_weakref stackoverflow»

Ошибка:

Traceback (most recent call last):
  File "wsgi.py", line 11, in <module>
    from django.core.wsgi import get_wsgi_application
  File "/opt/myproj/venvs/api/lib/python2.7/site-packages/django/core/wsgi.py", line 2, in <module>
    from django.core.handlers.wsgi import WSGIHandler
  File "/opt/myproj/venvs/api/lib/python2.7/site-packages/django/core/handlers/wsgi.py", line 5, in <module>
    import logging
  File "/opt/myproj/venvs/api/lib/python2.7/logging/__init__.py", line 26, in <module>
    import sys, os, time, cStringIO, traceback, warnings, weakref, collections
  File "/opt/myproj/venvs/api/lib/python2.7/weakref.py", line 13, in <module>
    from _weakref import (
ImportError: cannot import name _remove_dead_weakref
unable to load app 0 (mountpoint='') (callable not found or import error)

Я установил путь к anaconda

$ echo $PATH
/home/baji/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/home/baji/anaconda2/bin

$ echo $PYTHONPATH
/opt/myproj/venvs/api/bin/python

Я пытаюсь использовать команду uwsgi

$ /opt/myproj/venvs/api/bin/uwsgi -H /opt/myproj/venvs/api/ -i /opt/myproj/api/wsgi.ini

Это файл wsgi.ini

[uwsgi]
module = wsgi:application
master = true
processes = 1
chmod-socket = 666
socket = /tmp/api.sock
check-static = ./static
wsgi-file = wsgi.py
touch-reload = /tmp/api.txt
buffer-size = 65535
post-buffering = 1
listen = 65535
vacuum = true
max-requests = 1000
stats = 3032
stats-http = true

Любая помощь очень важна.

1 Ответ

0 голосов
/ 10 марта 2020

Я понял проблему. После установки версии uwsgi для conda проблема исчезла.

Мне пришлось обновить их, чтобы запустить сервер django с uwsgi

conda install -c conda-forge uwsgi
conda install pip
pip install -r requirements.txt 
...