Intro
pipenv는 파이썬에서 공식으로 권장하는 패키지 관리 툴이다. pipenv는 파이썬 버전까지 같이 명시할 수 있어서 관리에 더 용이하다. 또한, 여러 패키지들의 dependcy와 버전 관리를 해줄 수 있어 가상환경을 관리할 때 자주 쓰인다.
pipenv 설치
brew install pipenv
😩 시간이 오래 걸렸음
**brew 가 설치되지 않은 경우**
https://whitepaek.tistory.com/3
가상환경 구성
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.
'Language > Python' 카테고리의 다른 글
[Python] Several Dict To One Dict Using ChainMap | LIM (0) | 2023.05.18 |
---|---|
[Python] @classmethod 를 사용하면 좋은 경우 | LIM (0) | 2023.05.16 |
[Python] csv 모듈을 이용하여 파일 읽고, 쓰기 | LIM (0) | 2023.05.10 |
[Python] Ray 를 활용한 병렬처리 | LIM (0) | 2023.01.21 |
[Python] Module dependcy 새로운 관리 툴 Poetry | LIM (0) | 2022.12.17 |
댓글