step function을 이용해 lambda를 실행시키는 도중에 에러가 떴다.
enums가 package가 아니라고 한다.
enums라는 package는 분명히 있는데 아니라고 하는 이유를 모르겠다.
코드를 유심히 본 결과, system path를 두 군데를 지정해줬는데, 그 두 군데에서 한 곳은 enums.py를, 한 곳은 enums폴더가 있고 안에 storage_enum.py가 있는 것이다.
이럴 경우에는 어떻게 될까, 한번 테스트 해봤다.
/test/ - aaa/bbb.py
- aaa.py
다음과 같이 test폴더 안에 aaa폴더와 aaa.py를 만들고 aaa폴더 안에 bbb.py를 만들었다. aaa.py 안에는 test라는 class를 만들었다.
test폴더내에서 import aaa.bbb 혹은 from aaa import bbb를 실행시키면 다음과 같이 에러가 난다.
이 에러를 보니 python파일을 먼저 인식하는 거라고 생각했다.
다음과 같이 aaa.py는 잘 인식한다.
aaa.test는 당연히 aaa는 package가 아니기 때문에 에러가 난다.
하지만, aaa폴더안에 __init__.py를 넣는다면?
/test/ - aaa/bbb.py
- aaa/__init__.py
- aaa.py
다시 한번 위의 명령어를 실행해봤을 때 다음과 같은 결과를 얻을 수 있다.
그러면 aaa.py를 import하려고하면? 아래와 같이 에러가 난다.
따라서 결론은 package와 python 파일의 이름은 당연히 같게 해서는 안되고 같게된다면, __init__.py파일로 인해 package 여부를 판단하여 package를 우선적으로 인식하고 없다면 python file로 인식하게 된다는 것이다.
https://stackoverflow.com/questions/38454852/importerror-with-error-is-not-a-package
이건 비슷한 에러였는데, 추가적인 설명이 없어서, 직접해봤다. 즉, 위의 에러는 cts_sap_polaris python 파일 내에서 파이썬 파일로 인식을 한 뒤에 같은 이름인 cts_sap_polaris로 package처럼 접근하려고 해서 에러가 난 것이다.
'Python' 카테고리의 다른 글
python parameter에서 bare *란? (0) | 2022.06.20 |
---|---|
(에러)RuntimeError: Task <Task pending name='Task-1' coro=<update_one() running at test.py:7> cb=[_run_until_complete_cb() (0) | 2021.12.17 |
os.system significantly take time more than shutil. (0) | 2021.12.15 |
(에러)Asyncssh error Host key is not trusted (0) | 2021.11.15 |
python zip folder (0) | 2021.11.15 |