Python 在Gunicorn配置文件中访问Django代码

Python 在Gunicorn配置文件中访问Django代码,python,django,gunicorn,Python,Django,Gunicorn,我正在将Django应用程序从modWSGI转换为Gunicorn/NGINX。我从modwsgi文件中运行了一些django代码,以确保它在服务器启动时运行。我正在想办法让它在Gunicorn初创公司上运行 免责声明-我想要访问的代码是一个穷人的缓存,它处理来自数据库的数据,并以一种对我稍后在Django应用程序中所做的许多事情都友好的格式存储数据。与使用缓存解决方案相比,这个问题与此方法的优点无关 以下是我在mod WSGI中使用的代码,它运行得很好: sys.path.append('/s

我正在将Django应用程序从modWSGI转换为Gunicorn/NGINX。我从modwsgi文件中运行了一些django代码,以确保它在服务器启动时运行。我正在想办法让它在Gunicorn初创公司上运行

免责声明-我想要访问的代码是一个穷人的缓存,它处理来自数据库的数据,并以一种对我稍后在Django应用程序中所做的许多事情都友好的格式存储数据。与使用缓存解决方案相比,这个问题与此方法的优点无关

以下是我在mod WSGI中使用的代码,它运行得很好:

sys.path.append('/src/accx/navigation')
from navigation.views import rebuild_cache_all
rebuild_cache_all()
其中“accx”是Django项目,“导航”是Django应用程序

现在,我正试图用Gunicorn做同样的事情

def when_ready(server):
    from navigation.views import rebuild_cache_all
    rebuild_cache_all()
我还尝试在代码中的不同位置追加sys.path,但无论我做什么,都会出现以下错误:

ImportError: No module named navigation.views
我错过了什么明显的东西吗?我是不是走错了路?感谢您的指导

回答。。。。。。。。。。。。。 在输入了上述问题后,我仔细阅读了其他一些与我的问题“相关”的gunicorn问题,但在我的搜索中没有出现。在这样做的同时,我发现了我的问题

尾斜杠

我在尝试添加到gunicorn中的sys.path时没有使用。一旦我解决了这个问题,gunicorn开始抱怨它丢失了Django_设置_模块,所以我也不得不提供这个模块

以下是我现在可以使用的:

import sys,os
if not '/src/accx-venv/' in sys.path:
    sys.path.insert(0,'/src/accx-venv/')

os.environ["DJANGO_SETTINGS_MODULE"] = "accx.settings"

def when_ready(server):
    if not '/src/accx-venv/accx/' in sys.path:
        sys.path.insert(0,'/src/accx-venv/accx/')
    from navigation.views import rebuild_cache_all
    rebuild_cache_all()

可能还有另一种更干净的方法,但这让我开始工作。

您是否像在WSGI示例中那样将项目添加到sys.path,以便Gunicorn可以看到它?我以前尝试过,但后来有了一个启示……感谢您的回复!好吧,它不会让我回答我自己的问题:我猜我太新手了。编辑问题。