728x90
반응형
SMALL
라즈베리파이3에서 Python을 사용하다가 'ModuleNotFoundError'가 나왔습니다.
ModuleNotFoundError: No module named 'module_name'
이에 생각해볼것이 3가지 입니다. (본인은 마지막에서 해결되었음.)
1. Dependecy가 설치되어 있지 않음
>>> from pypot.creatures import PoppyTorso
Traceback (most recent call last):
File "<pyshell#9>", line 1, in <module>
from pypot.creatures import PoppyTorso
ModuleNotFoundError: No module named 'pypot'
pypot 이름의 module이 없다고 하니 설치해주어야 합니다.
콘솔에서 다음과 같이 입력해줍니다.
pip3 install pypot
Python3이기 때문에 pip3을 사용하였습니다.
pip을 사용하면 Python3 에 moudle이 설치되지 않습니다.
2. User-Defined Module
Python에서 import할수 있는 두가지 방법이 있는데, 절대경로와 상대경로입니다.
sys.path 같은 built-in package를 import 하는것이 absolute import이고,
사용자에게 만들어진 module을 import 하는것이 relative import입니다.
그래서 relative import는 'from'을 사용하여야 합니다.
- Absolute Import
import sys
- Relative Import
from pypot.creatures import PoppyTorso
3. 경로 추가
Python이 module과 package를 찾아가는 경로를 다음과 같이 확인 할 수 있습니다.
>>> import sys
>>> sys.path
['/home/poppy/Desktop', '/home/poppy', '/usr/bin', '/usr/lib/python37.zip', '/usr/lib/python3.7', '/usr/lib/python3.7/lib-dynload', '/home/poppy/.local/lib/python3.7/site-packages', '/usr/local/lib/python3.7/dist-packages', '/usr/lib/python3/dist-packages']
확인해 보니 package가 저장된 정확한 경로가 없어 직접 추가하였습니다.
>>> sys.path.append("/home/poppy/pyenv/lib/python3.7/site-packages")
>>> sys.path
['/home/poppy/Desktop', '/home/poppy', '/usr/bin', '/usr/lib/python37.zip', '/usr/lib/python3.7', '/usr/lib/python3.7/lib-dynload', '/home/poppy/.local/lib/python3.7/site-packages', '/usr/local/lib/python3.7/dist-packages', '/usr/lib/python3/dist-packages', '/home/poppy/pyenv/lib/python3.7/site-packages']
오류가 뜨지 않고 성공!
>>> from pypot.creatures import PoppyTorso
>>>
728x90
반응형
LIST
'그 외 코드 > 오류 해결' 카테고리의 다른 글
[안드로이드] ViewPager(or ScrollView) 안에 있는 MPAndroidChart의 좌우, 상하 Scroll 하기 (0) | 2021.03.15 |
---|---|
LiveData 데이터 바인딩 안될 때 (0) | 2021.02.26 |
imeOptions가 동작하지 않을 때 (0) | 2020.08.19 |
[안드로이드] Failed to apply plugin [id 'com.android.application'] 오류 (0) | 2020.03.05 |