我有一个这样的 Django 结构(仅显示库):
project/lib/ # Global libraries that will be used cross apps
project/lib/global_stuff.py
project/apps/app1/lib/special_for_app1.py
project/apps/app2/lib/special_for_app2.py
某些应用程序没有 lib 文件夹。
from apps.app1.lib import special_for_app1
工作正常。但是,当我在已经包含本地 lib 文件夹的文件夹中时,如何从全局 lib 文件夹中导入?
从其中一个应用程序的应用程序 views.py 文件中:
from lib import global_stuff
给我ImportError: cannot import name global_stuff
从 .lib 导入 global_stuff
给我ImportError: cannot import name global_stuff
from ..lib import global_stuff
给我ImportError: No module named lib
from ...lib import global_stuff
给我ValueError: Attempted relative import beyond toplevel package
from project.lib import global_stuff
有效,但我真的不想在导入中使用项目名称本身。
有没有办法解决这个问题,不使用导入中的项目名称,或者改变整个lib的想法。
还是有其他好的做法来存储代码的主要部分?