[英]ValueError: attempted relative import beyond top-level package python
[英]ValueError attempted relative import beyond top-level package, despite PyCharm autofilling suggestions
我正在尝试从同级包中导入模型并得到
ValueError: attempted relative import beyond top-level package
奇怪的是,我是根据PyCharm建议自动填充的,所以IDE正在注册模块,但是我的构建失败了...
] 1
这是我的项目结构:
app
\
+-core
| \
| +- __init__.py
| +- models.py <- the Tag model is present here
|
+-scheduler
| \
| +- __init__.py
| +- serializers.py <- importing app.core.models.Tag in this file
|
+- __init__.py
app.scheduler.serializers.py:
from rest_framework import serializers
from ..core.models import Tag
class TagSerializer(serializers.ModelSerializer):
"""Serializer for tag objects"""
class Meta:
model = Tag
fields = ('id', 'name')
read_only_fields = ('id',)
我一直在为此挠头,似乎无法弄清楚……
我尝试使用绝对路径,甚至使用PyCharm导入实用程序将其添加:
from rest_framework import serializers
from app.core.models import Tag
class TagSerializer(serializers.ModelSerializer):
"""Serializer for tag objects"""
class Meta:
model = Tag
fields = ('id', 'name')
read_only_fields = ('id',)
但随后我得到: ModuleNotFoundError: No module named 'app.core'
我正在使用
python manage.py runserver
真正的答案是顶层应用程序文件夹未包含在python路径中,我提到此堆栈溢出答案涉及以下方面:
... python不会记录软件包从何处加载。 因此,当您执行python -m test_A.test时,它基本上只是舍弃了test_A.test实际上存储在包中的知识...
并建议使用from core.models import Tag
,它似乎可以工作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.