我正在开发一个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并且不能在顶级目录之外。就是说,如果在BASE_DIR路径顶部附加路径,则sys.path可以导入。但这是一个棘手的方法。
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
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。