【发布时间】:2020-03-10 05:33:23
【问题描述】:
我正在尝试在 Ubuntu 16.04.6 LTS 上使用 anaconda python 运行 django 服务器和 uwsgi。 我已经创建了一个 conda 环境并安装了所有依赖项。
如果我在 dev 中运行 django 服务器(即 python manage.py runserver),它可以正常工作。但是,当我使用 uwsgi 运行它时,我收到“ImportError: cannot import name _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
非常感谢任何帮助。
【问题讨论】:
标签: python django linux anaconda uwsgi