본문 바로가기
Python , Pip/Pip, Python 모듈

pip 로 패키지 설치하고 관리하는 방법 # Python

by Developer88 2022. 4. 26.
반응형

pip는 파이썬을 Package를 설치하고 관리할 수 있게 해주는 Package Installer인데요.

오늘은 이것에 대해서 정리해 보도록 하겠습니다.

 

1. pip 설치

1-1. pip 설치

pip를 설치하기 위해서는 python에 기본적으로 들어있는 ensurepip라는 모듈을 이용해야 하는데요.

아래 명령어를 이용하면 pip를 실행시킬 수 있습니다.

 

python -m ensurepip --upgrade

 

 

1-2. pip업그레이드

업그레이드를 위해서는 아래 명령어를 사용해 주면됩니다.

 

python -m pip install --upgrade pip

 

여기서 사용된 m옵션은 pip 모듈을 실행하기 위해서 붙이는 옵션입니다.

 

1-3. 버전 확인

제대로 설치되었는지 버전을 확인해 보려면 다음명령어를 이용하면 됩니다.

 

python -m pip --version

 

2.  pip이용한 패키지 설치

pip가 설치되었으니, 원하는 패키지를 설치해주면 되는데요.

다음과 같이 해 주면 됩니다.

 

pip install <패키지 명>

 

 

아래의 예에서 나타낸 것처럼 버전명을 지정하거나 특정 버전 이상의 버전만 설치하도록 할 수도 있습니다.

버전을 작성하지 않으면 가장 최신 버전이 설치되는 것이 디폴트로 되어 있습니다.

 

pip install selenium==4.1.3   # 특정버전 설치시
pip install selenium>=4.*     # 최소버전 지정해서 설치시

 

 

예를 들어서 requests 패키지를 설치할 때는

'pip install request'

와 같이 해주면 되는 것 이지요.

설치된 모든 Package의 리스트를 보려면 아래 명령어를 사용하면 됩니다.

 

pip list

 

 

 

참고로 패키지 설치 명령어 입력 후,

다음과 같은 메시지가 나온다면,

이미 해당 모듈의 최신버전이 설치되어 있다는 것을 의미합니다.

 

Requirement already satisfied:

 

3. Uninstall Package

설치했던 package를 uninstall 할 때는 아래 명령어를 사용해 주면 됩니다.

 

python -m pip uninstall <패키지 명>

 

4. Requirements Files ( requirements.txt )

작업하던 환경에서의 Package들을 그대로 다른 곳에서 설치하려고 할 때는,

requirements.txt file을 이용해 주면 됩니다.

이 파일을 생성할 때는 freeze 명령어를 사용해주기만 하면 됩니다.

 

pip freeze > requirements.txt

 

그럼, requirements.txt가 다음과 같이 생성된 것을 볼 수 있는데요.

 

 

이렇게 만들어진 requirements.txt는 다음 명령어를 이용해서,

새로운 디렉토리에 설치할 수 있습니다.

 

pip install -r requirements.txt

 

 

5. 코드에서 업그레이드 하기

파이썬에서는 os모듈을 이용하면, 

코드를 실행할 때마다 특정모듈을 업그레이드할 수 있습니다.

2가지 방법이 있는데요.

 

하나는 python의 os 모듈을 이용하는 것 이구요.

 

import os

os.system('pip install --upgrade <패키지 명>')

 

 

다른 하나는 pip 모듈을 설치하고 아래와 같이 이용하는 것 인데요.

에러핸들링도 아래와 같이 할 수 있습니다.

 

import pip

result = pip.main(['install', '--upgrade', '<패키지명>'])

if result.returncode != 0:
    raise Exception('Failed to upgrade package.')

 

 

이상으로 python의 Package 설치에 대해서 정리해 보았습니다.

 

728x90

댓글