[英]How to import models from outside Django BASE_DIR
我正在開發一個Django應用程序,我想在其中將一些類/函數從generator.py導入到views.py中,以處理用戶提交的輸入。 我的文件夾結構如下所示:
project/
models/
__init__.py
generator.py
web/
django/
__init__.py
settings.py
urls.py
wsgi.py
django_app
__init__.py
views.py
etc.
在views.py內部,我有
from ...models.generator import Generator
當我嘗試運行服務器時,得到的是:
ValueError: attempted relative import beyond top-level package
我已經看到了很多答案,但是大多數答案都是關於操縱sys.path或更改PYTHONPATH的。 我不確定怎么做以及在哪里做,因為我是Django的新手。
誰能確切告訴我要執行哪些命令才能完成導入?
python的導入基於sys.path
,並且不能在頂級目錄之外。 更多信息 。
這意味着,如果在sys.path
附加BASE_DIR
路徑的頂部,則可以導入。 但這是一個棘手的方法。
def import_function():
import sys
sys.path.append(os.path.dirname(BASE_DIR))
module = __import__('models.generator') # import code
sys.path.pop()
return module
g_module = import_function()
g_module.Generator
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.