uWSGI以错误的顺序加载Django应用程序(按字母顺序,而不是按已安装的应用程序中定义的顺序)

uWSGI以错误的顺序加载Django应用程序(按字母顺序,而不是按已安装的应用程序中定义的顺序),django,uwsgi,Django,Uwsgi,我有一个Django项目在uwsgi上运行,由supervisord控制。 在Django项目中,我有一个额外的目录“apps/”,我把所有Django应用程序都放在这个目录中。在my settings.py中,我将“apps/”目录添加到python路径中,以便找到其中的Django应用程序 这在runserver上非常有效。但我的生产环境中有uwsgi。当我启动服务器时,Django应用程序按照字母顺序加载,就像它们在文件系统中一样,而不是按照安装的应用程序定义的顺序加载 例如:我的文件系统

我有一个Django项目在uwsgi上运行,由supervisord控制。 在Django项目中,我有一个额外的目录“apps/”,我把所有Django应用程序都放在这个目录中。在my settings.py中,我将“apps/”目录添加到python路径中,以便找到其中的Django应用程序

这在runserver上非常有效。但我的生产环境中有uwsgi。当我启动服务器时,Django应用程序按照字母顺序加载,就像它们在文件系统中一样,而不是按照安装的应用程序定义的顺序加载

例如:我的文件系统中有以下应用程序:

/home/anton/project/apps/events
/home/anton/project/apps/profiles
/home/anton/project/apps/routes
配置文件是我的扩展用户配置文件,路线是自行车路线,事件取决于路线,因为事件可以有1..n条路线

因此,在我安装的应用程序中,它的定义如下:

INSTALLED_APPS = [
   # .. django stuff ..
   'profiles',
   'routes',
   'events',
]
在events应用程序的models.py中,我从routes应用程序导入模型。只要Django应用程序按照INSTALLED_apps设置中指定的顺序加载,一切正常。但是uWSGI按照字母顺序加载Django应用程序。由于事件是在路由之前加载的,因此在models.py from events应用程序中出现以下错误:

ImportError at /
cannot import name Route

/myproject/app/src/apps/events/models.py in <module>
    from routes.models import Route 

“/project/app/src/”是Django项目所在的位置/project/app/src/apps'是Django应用程序所在的位置。wsgi.py(由module=wsgi引用)位于“/project/app/src/”中。

是否修改了
sys.path
,也许?在my settings.py中,我将“/project/app/src/apps/”目录插入sys.path(索引0上)。请参阅uwsgi配置和问题中的注释。(刚刚加上)很可能就是这样;如果这被推迟到听了之后,那就会发生。我不知道;我不熟悉uwsgi,但是当我看到Django错误页面时,在settings.py中添加到python路径的目录会显示在路径中的错误消息中。我还尝试将其添加到uswgi配置中,但没有成功。。现在我在考虑订购已安装的应用程序中的应用程序加载。。。还有其他想法吗?没问题。谢谢你的帮助!你给我指明了正确的方向。现在我知道,uwsgi正在以我的“/project/app/src/apps/”按目录中的字母顺序加载django应用程序,而不是按照INSTALLED_apps变量中给出的顺序加载。这就是问题的根源。现在我只需要找出,如何告诉uwsgi以正确的顺序加载应用程序!:)
[uwsgi]
http-socket = :8081
master = true
workers = 8

pidfile = /tmp/uwsgi-project.pid

chdir = /project/app/src/apps/
pythonpath = /project/app/src/
module = wsgi
virtualenv = /home/anton/.virtualenvs/project/

env = DJANGO_SETTINGS_MODULE=settings
logto = /project/log/uwsgi-bikemap.log

max-requests = 5000
vacuum = true