프로그래밍 언어/Python

파이썬 ModuleNotFoundError 해결하기

트리맨스 2020. 3. 22. 01:21
반응형

파이썬을 쓰다 보니 외부 모듈을 불러올 때가 많이 필요하다. 데스크톱으로 할 때는 아나콘다에서 바로 설치만 하면 되는데, 실제 리눅스 PC에서 사용할 때는 실행이 되지 않는다.

 

나의 경우에는 이러한 식으로 경고 메시지가 떴다.

 

pi@raspberrypi:~ $ python3
Python 3.7.3 (default, Apr  3 2019, 05:39:12) 
[GCC 8.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import arrow
Traceback (most recent call last):
  File "", line 1, in 
ModuleNotFoundError: No module named 'arrow'
>>> 

 

결론은 안된다는 소리다. arrow 모듈을 불러올려 했으나, 실패했다.

여기저기 찾아보다가, 결국 답을 깨달았다.

 

 

삽질의 결과


해결방법은...별거 없었다. 

파이썬에는 패키지 관리 프로그램인 pip 가 있다. pip를 먼저 설치 해줘야 한다.

터미널 열고 sudo apt-get install python3-pip 를 입력하면 설치가 알아서 된다. pip도 버전이 있는데 현재는 파이썬 3.x버전을 주로 쓰기 때문에 이 명령어를 친다.

 

그 다음에는 pip3 install arrow (arrow 자리에 본인이 설치하고 싶은 패키지를 입력하면 된다.) 를 터미널 창에 치면, 이제 그 모듈이 컴퓨터에 설치가 된다.

 

pi@raspberrypi:~ $ pip3 install arrow
Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple
Collecting arrow
  Downloading https://files.pythonhosted.org/packages/92/fa/f84896dede5decf284e6922134bf03fd26c90870bbf8015f4e8ee2a07bcc/arrow-0.15.5-py2.py3-none-any.whl (46kB)
    100% |████████████████████████████████| 51kB 450kB/s 
Requirement already satisfied: python-dateutil in /usr/lib/python3/dist-packages (from arrow) (2.7.3)
Installing collected packages: arrow
Successfully installed arrow-0.15.5

 

이러한 식으로 뜨면 arrow 패키지는 컴퓨터에 설치가 된 것이다.

 

 

아나콘다에서 해결법


아나콘다도 훌륭한 패키지 도구이다. 하지만 GUI 화면으로 아나콘다를 제어하는 것은 한계가 있다. 특정 environment 에 패키지를 설치하는 법을 알아보자. windows10 컴퓨터 기준이다. 모든 명령어는 cmd (명령 프롬프트)에 입력한다.

 

conda

이것을 쳐서 아나콘다에 대한 설명이 있으면 아나콘다가 컴퓨터에 잘 설치된 것이다.

 

conda env list

이것으로 현재 열려 있는 environment 목록을 볼수 있다. 설치하고 싶은 환경을 정한다.

 

conda activate env(활성화 하고싶은 environment 이름)

environment 를 활성화 시킨다. 

 

pip3 install arrow(설치하고 싶은 패키지 이름)

pip3를 이용해 패키지를 설치한다.

 

colab에서의 해결법


colab도 가상으로 돌아가는 리눅스 컴퓨터에서 돌아가므로, pip 명령어로 설치하면 된다.

!pip install [패키지명]

반응형