내용 이전

https://white.seolpyo.com/entry/23/?ref=copy

 

리눅스에 파이썬 pip를 설치하는 방법(Command 'pip' not found, but can be installed with) - 하얀설표 블로그

pip 버전 확인 방법 리눅스 os에 파이썬을 설치했다면 파이썬 모듈 설치를 위한 pip가 설치되어있을 수도 있고, 아닐 수도 있다.pip의 버전을 호출하는 것으로 이를 판단하는 것이 가능한데, pip가

white.seolpyo.com

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

=

=

=

=

=

=

=

=

=

=

=

=

=

=

=

=

=

=

=

=

=

=

=

=

=

=

=

=

=

=

=

=

=

=

=

=

=

=

=

=

=

=

=

=

=

=

=

=

 

 

어찌저찌 라즈베이파이4에 설치된 라즈비안 OS에 기본 내장된 파이썬이 아닌 다른 버전의 파이썬을 설치하는데 성공했습니다.

그러나, 파이썬 3.8.7을 설치한 다음 파이썬 코드를 작성하고, 실행하는 데는 문제가 없었지만 다른 곳에서 문제가 발생했습니다.

바로 파이썬 3.8 버전에서 사용할 파이썬 모듈을 pip를 통해 설치하는 과정에서 문제가 나타났는데요.

파이썬 설치에는 성공했지만 pip 에서 나타난 문제

pip3.8 install requests
pip3.8 install psutil

requests 모듈과 psutil 모듈을 설치하기 위해 위와 같은 명령어를 입력하자 나타난 에러 메시지들은 다음과 같습니다.

defaulting to user installation because normal site-packages is not writeable

WARNING: pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available.

Could not fetch URL https://pypi.python.org/simple/setuptools/: There was a problem confirming the ssl certificate: Can't connect to HTTPS URL because the SSL module is not available. - skipping

Could not fetch URL https://www.piwheels.org/simple/setuptools/: There was a problem confirming the ssl certificate: Can't connect to HTTPS URL because the SSL module is not available. - skipping

ModuleNotFoudError: No module named '_ctypes'

이 에러들이 정말 골때리는 문제인게.. 저한테만 나타나는 문제인지 우분투나 Mac에서 이와 비슷한 문제를 다루고, 해결을 한 글들은 다수 존재했지만 라즈비안 OS에서 이런 문제를 제기한 사람은 극히 적었다는 겁니다.
심지어 그 해결법도 굉장히 다양하고 단순히 어떻게 해봐라, 라는 식으로 끝나는 글들이 대다수였기 때문에 그 방법이 맞는지 확인하기 위해서는 직접 검증하는 것 외에는 방법이 없었습니다.

제일 답답했던 부분은 [라즈비안에 파이썬 3.x 버전 설치하기], 또는 [how to install python 3.x on raspbian]과 같은 글에서 제시하는 대로 설치를 했음에도 불구하고 이런 문제가 발생했다는 겁니다.
게다가 이런 가이드 글들은 라즈비안 OS에 어떻게 파이썬을 설치해야하는지에 대해서만 나와있을 뿐, 실제 작동 여부나 설치 과정같은 것들은 없었고, 심지어 pip에 대한 언급은 전혀 없었다는게 가장 큰 문제였습니다.

영어를 포함한 외국어를 못하더라도 구글 번역에 의지해서 외국어로 작성된 글을 찾아볼 수는 있었지만, 외국어로 작성된 글들이 너무 많다는게 문제였죠.

문제를 해결하기 위해서는 해당 에러가 발생하는 이유를 찾는 것이 급선무라는 생각이 들었고, 이유를 찾아본 결과 이런 에러가 발생하는 이유는 pip에서 ssl 접속을 하지 못했기 때문에 이런 문제가 발생한다는 것이었습니다.

보통 이런 경우 openssl을 설치해주면 해결이 되는 문제인 듯 했으나.. 문제는 이미 파이썬 3.8 설치 이전에 openssl을 설치한 상태에서 파이썬을 설치했음에도 불구하고 이런 문제가 발생했다는 것입니다.

에러 메시지들의 해결책으로 가장 많이 나오는 해결방법이 바로 openssl을 설치하라는 것으로 마무리가 되었기 때문에 관련 글을 하나하나 찾아볼 때마다 허무함만 남을 뿐이었죠.

 

어떤 글에서는 trusted host 명령어로 pip가 모듈을 다운로드하는 pypi.org를 신뢰하는 호스트로 등록하라고도 하던데.. 이 방법 역시 통하지 않았습니다.

해결 방법

결국 모든 문제는 pip에서 사용해야할 프로그램을 제대로 사용하지 못했기 때문에 발생하는 문제였습니다.

라즈비안 OS를 제외한 우분투, 리눅스, Mac OS 에서는 파이썬 설치 이후에 이런 프로그램을 설치해주면 해결이 되는 것 같지만, 이상하게도 라즈비안 OS에서는 파이썬을 설치한 다음에 이런 프로그램들을 설치해주어도 정상적으로 작동하지 않습니다.

어느 글에서 라즈비안에서 파이썬을 설치한 이후에 설치하는 프로그램은 pip에서 참조할 수 없다고 하는 걸 봤던 것 같습니다.

그렇다면 에러를 해결하기 위한 프로그램을 설치한 다음, 파이썬을 다시 설치해주면 문제가 해결되는 것이었습니다.

터미널을 연 다음 다음 명령어를 입력해줍시다.

sudo apt-get install libreadline-gplv2-dev libncursesw5-dev libssl-dev libsqlite3-dev tk-dev libgdbm-dev libc6-dev libbz2-dev libffi-dev

sudo apt-get install libreadline-gplv2-dev libncursesw5-dev libssl-dev libsqlite3-dev tk-dev libgdbm-dev libc6-dev libbz2-dev libffi-dev

설치가 끝나면.. 설치 내용을 적용하기 위해 파이썬을 다시 설치해줘야 합니다.

파이썬을 설치하기 위해 tgz 파일 다운로드부터 명령어를 나열하겠습니다.
파이썬 버전은 제가 설치한 파이썬 3.8.7 버전 기준입니다.
이미 파이썬 tgz의 압축이 풀려 있다면 새롭게 다시 압축을 풀지 않아도 됩니다.

터미널에서 현재 위치에 있는 파일들을 보려면 [ls](소문자 L)를 입력해주면 됩니다.

wget https://www.python.org/ftp/python/3.8.7/Python-3.8.7.tgz
sudo tar xzf Python-3.8.7.tgz
cd Python.3.8.7
./configure
make
sudo make install

위 순서를 따라 파이썬 3.8.7 버전을 설치하면 [python3 -V] 을 입력했을 때 기존에 설치된 python 3.7.3 버전이 아닌 python 3.8.7 버전을 출력해줍니다.
pip 역시 터미널에 [pip3 -V] 을 입력하면 python 3.8이라는 문구를 보여줍니다.

파이썬 3.7.3은 [python3.7 -V] 라는 명령어를 입력해주면 확인할 수 있습니다.

설치된 파이썬 모듈 목록을 확인하기 위해 [pip3 list] 를 입력하면 pip 버전을 업그레이드 하라는 경고문이 나타나시 때문에 다음 명령어를 입력해 pip를 업그레이드 시켜줍시다.

python3 -m pip install --upgrade pip

저처럼 최상위 폴더가 아닌 위치에서 명령어를 입력하면 경고문이 나타나기 때문에 최상위 위치가 아니라면 [cd..] 명령어를 입력해 최상위로 이동해주거나, 새 터미널을 연 다음에 명령어를 입력해주세요.

잘 보면 [pip3 list] 명령을 통해 설치된 파이썬 모듈 목록을 조회할 때에도 나타나던 에러 메시지가 사라진 것을 알 수 있습니다.

이후 파이썬 모듈을 설치하기 위해 명령어를 입력해주면 정상적으로 설치됩니다.

pip3 install requests

모듈은 정상적으로 설치가 되었지만, 여전히 나타나는 문구가 하나 있습니다.

defaulting to user installation because normal site-packages is not writeable

구글 번역기를 통해 위 문구를 번역해보면 [일반 사이트 패키지는 쓸 수 없기 때문에 사용자 설치로 기본 설정 됨]이라는 뜻인데, 관리자 권한이 없는 상태에서 나타나는 문구입니다.

경고문인줄 알았더니, 딱히 신경쓰지 않아도 되는 일반 안내 문구였네요.

해당 문구는 pip를 통한 모듈 설치 시에 --user 옵션을 설정해주면 나타나지 않습니다.

pip3 install --user bs4

sudo pip3 install [package name]을 사용해도 될 것 같은데.. 다른 사람들이 sudo 명령을 이용한 pip 설치는 하지 말라고 하니까 하지 않습니다.

이상으로 라즈비안 OS에 파이썬을 설치하고, pip를 통한 파이썬 모듈 설치 시 나타나는 에러를 해결하는 과정을 알아보았습니다.

이 문제로 인해 하루 종일 시간을 날려먹었는데.. 같은 문제로 머리를 쥐어뜯고 있을 누군가에게 도움이 되었으면 좋겠습니다.

관련 글

 

라즈베리파이4에 파이썬 3.8을 설치하다가 대참사 발생..

라즈베리파이4에 파이썬을 설치하는데, 라즈비안 OS에 기본적으로 내장되어있는 파이썬 3.7 버전이 아닌 파이썬 3.8 버전을 사용하기 위해 설치하다가 개판이 났습니다.. 파이썬 설치까지는 정상

redfox.tistory.com

 

라즈베리파이에 파이썬 3.7이 아닌 다른 버전의 파이썬을 설치했습니다.

이전에 라즈베리파이4에 파이썬을 설치하다가 이것저것 꼬여서 개판이 되었다고 글을 적었었는데.. 중간에 잘못된 것을 어떻게 해결하려고 하다가 더 꼬여버리는 바람에 sd카드를 포맷하고 새

redfox.tistory.com

 

  • 네이버 블로그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기