私はこのような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フォルダーからインポートするにはどうすればよいですか?
いずれかのアプリのappsviews.pyファイル内から:
from lib import global_stuff
私にくれImportError: cannot import name global_stuff
.libからimportglobal_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のアイデア全体を変更することなく、これを解決する方法はありますか?
または、コードの主要部分を保存するための他の良い習慣はありますか?