• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

from .sub.sub1 import * 오류

21.01.26 00:04 작성 조회수 221

1

아래에서도 같은 질문을 주셨는데, sub 앞에 .을 찍어도 정상 실행이 된다고 하셨는데 똑같이 실행해 보았더니 에러가 발생하였습니다.

from .sub.sub1 import * 

ImportError: attempted relative import with no known parent package

점을 찍기 전까지는 아무런 문제 없이 잘 작동하였는데, 왜 이런 현상이 발생하는지 궁금합니다..!

답변 5

·

답변을 작성해보세요.

1

PARK JUNYEONG님의 프로필

PARK JUNYEONG

2021.01.26

강사님

강사님이 올려주신 링크로 들어가서 읽어봤습니다!

읽어보니 사용하려는 패키지의 모든 모듈(*)을 절대경로는 접근 가능하나, 상대경로는 접근 못한다고 되어있던데

그러면 파이썬에서는 from 상대경로 import *를 통한 패키지는 사용을 못하고 from 절대경로 import*만 가능한가요?

0

PARK JUNYEONG님의 프로필

PARK JUNYEONG

2021.01.26

감사합니다 :)

0

네 맞습니다. 

0

안녕하세요.

https://velog.io/@bungouk6829/Python-%EC%9D%98-%EB%AA%A8%EB%93%88%EA%B3%BC-%ED%8C%A8%ED%82%A4%EC%A7%80-sys

위에 링크를 들어가셔서

아랫 부분에 상대 경로 파트를 읽어보세요!

그러면 아래 내용이 이해가 가실거예요!

꼼꼼히 처음부터 읽어보시면 절대, 상대 경로에 대한 복습도 되고 좋을 거예요!

사용하려는 패키지의 모든 모듈(*)을 import 하려니 절대경로로는 접근이 가능한데, 상대경로로는 접근이 불가능하다. error 을 내뱉는다.

ImportError: attempted relative import with no known parent package

이유는 python 자체에서 패키지와 모듈을 가져와 함수를 쓰는 곳에서는 상대경로로 접근자체가 불가능하게 막아놓았다.

0

PARK JUNYEONG님의 프로필

PARK JUNYEONG

2021.01.26

답변을 해드리려고 직접 해봤는데 저도 안되어서 궁금하네요.

PYTHON_BASIC
│  chapter02_01.py
│  chapter02_02.py
│  chapter03_01.py
│  chapter03_02.py
│  chapter03_03.py
│  chapter03_04.py
│  chapter03_05.py
│  chapter03_06.py
│  chapter04_01.py
│  chapter04_02.py
│  chapter04_03.py
│  chapter05_01.py
│  chapter05_02.py
│  chapter06_01.py
│  chapter06_02.py
│  chapter06_03.py
│  chapter07_01.py
│  chapter08_01.py
│  chapter08_02.py
│  chapter09_01.py
│  chapter09_02.py
│  chapter10_01.py
│  chapter10_02.py
│  first.py
│
├─resource
│      contents1.txt
│      contents2.txt
│      contents3.txt
│      it_news.txt
│      test1.csv
│      test2.csv
│      word_list.csv
│      write1.csv
│      write2.csv
│
├─sound
│      bad.wav
│      good.wav
│
└─sub
    │  __init__.py
    │
    ├─sub1
    │      module1.py
    │      __init__.py
    │
    └─sub2
            module2.py
            __init__.py

이런 식으로 파일 구조가 이루어져 있는데

현재 디렉토리(.)로 사용해보려고 구글링을 해서 이것저것 다 해봤는데 안되네요.....

cmd로 파일이 있는 루트 디렉토리가 있는 python_basic까지 가서 

python -m 옵션으로 해서 모듈을 지정해줬는데도 안 되네요 ㅠㅠ

python3 -m sub.sub1.module1
python3 -m sub.sub1.module2

python chapter06_03.py
from .sub.sub1 import *
from .sub.sub2 import *

실행을 시키면 아래 이미지처럼 오류가 납니다.

무엇이 문제일까요?