Python 如何从Django BASE_DIR外部导入模型
我正在开发一个Django应用程序,其中我想将generator.py中的一些类/函数导入到my views.py中,以处理用户提交的输入。我的文件夹结构如下所示:Python 如何从Django BASE_DIR外部导入模型,python,django,python-import,Python,Django,Python Import,我正在开发一个Django应用程序,其中我想将generator.py中的一些类/函数导入到my views.py中,以处理用户提交的输入。我的文件夹结构如下所示: project/ models/ __init__.py generator.py web/ django/ __init__.py settings.py urls.py wsgi.py django
project/
models/
__init__.py
generator.py
web/
django/
__init__.py
settings.py
urls.py
wsgi.py
django_app
__init__.py
views.py
etc.
Inside 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\u 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
python的导入基于
sys.path
,不能在顶级目录之外
这意味着,如果在sys.path
中附加BASE\u 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
您是否尝试过从project.models.generator导入生成器<代码>是它说ModuleNotFoundError:没有名为“project”的模块您是否尝试过从project.models.generator导入生成器<代码>是它说ModuleNotFoundError:没有名为“project”的模块