Görünüşe göre burada python 3'te göreceli ithalat hakkında bazı sorular var, ancak birçoğundan geçtikten sonra hala sorunumun cevabını bulamadım. işte soru.
Aşağıda gösterilen bir paketim var
package/
__init__.py
A/
__init__.py
foo.py
test_A/
__init__.py
test.py
test.py'de tek bir satır var:
from ..A import foo
şimdi, klasöründeyim package
ve koşuyorum
python -m test_A.test
Mesajım var
"ValueError: attempted relative import beyond top-level package"
ama eğer üst klasörde package
, örneğin, ben çalıştırmak:
cd ..
python -m package.test_A.test
herşey yolunda.
Şimdi sorum şu:
klasöründe package
olduğumda, ve test_A alt paketinin içindeki modülü çalıştırdığımda, test_A.test
anlayışım temelinde ..A
, hala package
klasör içinde olan sadece bir düzey yukarı çıkıyor , neden mesaj söyleyerek veriyor beyond top-level package
. Bu hata iletisine neden olan neden tam olarak nedir?