[英]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.