본문 바로가기
Language/Python

[Python] Pipenv 설치 및 가상환경 관리(Mac 기준) | LIM

by forestlim 2023. 5. 12.
728x90
반응형

Intro

pipenv는 파이썬에서 공식으로 권장하는 패키지 관리 툴이다. pipenv는 파이썬 버전까지 같이 명시할 수 있어서 관리에 더 용이하다. 또한, 여러 패키지들의 dependcy와 버전 관리를 해줄 수 있어 가상환경을 관리할 때 자주 쓰인다.

 

pipenv 설치

brew install pipenv

😩 시간이 오래 걸렸음

 

**brew 가 설치되지 않은 경우**

https://whitepaek.tistory.com/3

 

Homebrew(홈브류) 설치 및 사용법, MacOS에서 프로그램을 쉽게 다운로드 및 삭제할 수 있는 패키지 관

Homebrew 설치 및 사용법 macOS를 새롭게 구입 또는 클린 설치를 하고 나서 가장 먼저 설치하는 MacOS 용 패키지 관리자입니다! 많은 맥 유저분들이 아직 Homebrew를 터미널에서 사용하는 방식이 익숙하

whitepaek.tistory.com

 

가상환경 구성

pipenv 로 패키지 관리를 하고 싶은 프로젝트 폴더로 이동한다. 밑의 예시의 경우 crawl 프로젝트이다.

 ~/crawl/ pipenv --python 3.7                                                                 16:16:00
Loading .env environment variables...
Warning: the environment variable LANG is not set!
We recommend setting this in ~/.profile (or equivalent) for proper expected behavior.
Creating a virtualenv for this project...
Pipfile: /Users/hwalimlee/crawl/Pipfile
Using /usr/local/bin/python3.7m (3.7.16) to create virtualenv...
⠦ Creating virtual environment...created virtual environment CPython3.7.16.final.0-64 in 2772ms
  creator CPython3Posix(dest=/Users/hwalimlee/.local/share/virtualenvs/crawl-2zlApkj1, clear=False, no_vcs_ignore=False, global=False)
  seeder FromAppData(download=False, pip=bundle, setuptools=bundle, wheel=bundle, via=copy, app_data_dir=/Users/hwalimlee/Library/Application Support/virtualenv)
    added seed packages: pip==23.1.2, setuptools==67.7.2, wheel==0.40.0
  activators BashActivator,CShellActivator,FishActivator,NushellActivator,PowerShellActivator,PythonActivator

✔ Successfully created virtual environment!
Virtualenv location: /Users/hwalimlee/.local/share/virtualenvs/crawl-2zlApkj1
requirements.txt found in /Users/hwalimlee/crawl instead of Pipfile! Converting...
✔ Success!



만약 설치되지 않은 파이썬 버전으로 환경을 생성하려고 하면 다음과 같이 설치 문구가 뜬다.

 ~/crawl/ pipenv --python 3.7                             [23/05/12 | 8:51:02]
Warning: the environment variable LANG is not set!
We recommend setting this in ~/.profile (or equivalent) for proper expected behavior.
Warning: Python 3.7 was not found on your system...
Would you like us to install CPython 3.7.13 with Pyenv? [Y/n]: Y

 

이렇게 가상환경을 구성하면 프로젝트 폴더에 Pipfile과 Pipfile.lock 파일이 생성된다. 

 

처음 파이썬 버전만 세팅한 결과는 이러하다.

[[source]]
url = "https://pypi.org/simple"
verify_ssl = true
name = "pypi"

[packages]

[dev-packages]

[requires]
python_version = "3.7"
python_full_version = "3.7.13"

 

가상환경 사용

터미널에서 가상환경을 사용하는 방법에 대해 알아보자. pipenv shell 명령어를 날리면 가상환경이 활성화된다.

 ~/crawl/ pipenv shell                                                                                                          [23/05/12 | 8:56:59]
Launching subshell in virtual environment...
 . /Users/ihwalim/.local/share/virtualenvs/crawl-vegiCDqj/bin/activate

 

가상환경에서 나가는 방법은 exit 명령어를 날리면 된다.

 

패키지 설치

본격적으로 패키지를 설치해봅시다. 기본 명령어는 pipenv install {package} 이다.

pandas 패키지를 설치해 보겠습니다.

 ~/crawl/ pipenv install pendulum                                                                                               [23/05/12 | 9:05:02]
Installing pendulum...
Resolving pendulum...
Installing...
Adding pendulum to Pipfile's [packages] ...
✔ Installation Succeeded
Pipfile.lock (848d7c) out of date, updating to (1f93e7)...
Locking [packages] dependencies...
Building requirements...
Resolving dependencies...
✔ Success!
Locking [dev-packages] dependencies...
Updated Pipfile.lock (3c91a658eba6408f77f017a47afd89ad9757250d3453aca5eecd21311f1f93e7)!
Installing dependencies from Pipfile.lock (1f93e7)...
To activate this project's virtualenv, run pipenv shell.
Alternatively, run a command inside the virtualenv with pipenv run.

 

 

개발용 패키지 설치

pipenv를 사용하면 실제 운영에 필요한 패키지와 개발에만 필요한 패키지를 구분해서 관리할 수 있습니다. 확실히 requirements.txt 한 개의 파일로 관리할 때 보다 편한 부분이었습니다. --dev 혹은 원하는 걸로 옵션을 주면 따로 관리할 수 있어서 편했습니다.

 ~/crawl/ pipenv install selenium --dev                                                                                         [23/05/12 | 9:07:21]
Installing selenium...
Resolving selenium...
Installing...
Adding selenium to Pipfile's [dev-packages] ...
✔ Installation Succeeded
Pipfile.lock (1f93e7) out of date, updating to (4f3a15)...
Locking [packages] dependencies...
Building requirements...
Resolving dependencies...
✔ Success!
Locking [dev-packages] dependencies...
Building requirements...
Resolving dependencies...
✔ Success!
Updated Pipfile.lock (f634b3bc9622f82ea7e301966aae355c80e218d5977fee22e79ae1c1804f3a15)!
Installing dependencies from Pipfile.lock (4f3a15)...
Installing dependencies from Pipfile.lock (4f3a15)...
To activate this project's virtualenv, run pipenv shell.
Alternatively, run a command inside the virtualenv with pipenv run.

 

위의 패키지들을 설치하고 나면 Pipfile 이 다음과 같이 변경됩니다.

[[source]]
url = "https://pypi.org/simple"
verify_ssl = true
name = "pypi"

[packages]
pendulum = "*"

[dev-packages]
selenium = "*"

[requires]
python_version = "3.7"
python_full_version = "3.7.13"

 

패키지 한 번에 설치

requirements.txt로 관리할 경우 pip install -r requirements.txt 로 필요한 패키지들을 한 번에 설치할 수 있다. 

pipenv의 경우 다음과 같이 설치한다. pipenv install 너무 짧고 간결해서 좋다.

 ~/crawl/ pipenv install                                                                                                        [23/05/12 | 9:07:33]
Installing dependencies from Pipfile.lock (4f3a15)...
To activate this project's virtualenv, run pipenv shell.
Alternatively, run a command inside the virtualenv with pipenv run.
728x90
반응형

댓글