Pipenv에서 Python 패키지 관리

5097 단어 Pipenv파이썬

소개



예를 들어 Ruby에서는 번들러을 사용하여 Gemfile을, Node.js에서는 npm 또는 Yarn을 사용하여 package.json을 사용하여 패키지를 관리 할 수 ​​있습니다.

마찬가지로 Python에서는 pip을 사용하여 requirements.txt에서 패키지를 관리할 수 있습니다. 그러나 Gemfile 또는 package.json와 달리 기능이 충분하지 않습니다.

그래서 보다 편리한 패키지 관리 방법을 조사하고 있었던 곳 Pipfile 이라고 하는 것을 발견했습니다. 아직 실험 단계인 것 같습니다만, requirements.txt 보다 고기능으로 편리할 것 같습니다. 그리고 Pipenv이라는 도구를 사용하여 Pipfile를 처리 할 수 ​​있기 때문에 시도했습니다.

Pipenv란?



공식 문서의 일본어 번역에 따르면

Pipenv - Python.org가 공식적으로 추천하는 Python 패키징 도구 및 무료로.
(약어)
pipenv는 수동으로 패키지를 설치 및 제거하는 것처럼 Pipfile에 패키지를 추가 및 제거하는 것 외에도 프로젝트의 가상 환경을 자동으로 만들고 관리합니다. 또한 pipenv는 언제든지 중요한 Pipfile.lock을 생성하며 이는 결정 론적 빌드를 제공하는 데 사용됩니다.

라는 것입니다. 기계 번역 같네요

Pipenv는 가상 환경을 만드는 데 virtualenv를 사용합니다.

설치


$ pip install pipenv

사용법



모든 Python 프로젝트의 디렉토리로 이동해 봅시다.
$ cd pipenv-sandbox

시작하기 전에 가상 환경을 만듭니다. 이 때 virtualenv가 사용하는 Python 버전을 선택적으로 지정합니다.
$ pipenv --three  # Python 3
$ pipenv --two  # Python 2
$ pipenv --python 3.6.3  # バージョンを厳密に指定する

그런 다음 패키지를 설치합니다. beautifulsoup4requests를 사용해보십시오.
$ pipenv install beautifulsoup4==4.6.0 requests==2.18.4

또한 ipython를 설치해 봅시다. pipenv install 명령에는 yarn add 명령과 마찬가지로 --dev 옵션이 있으며 개발 환경에만 패키지를 설치할 수 있습니다.
$ pipenv install --dev ipython==6.2.1

여기서 프로젝트를 확인하면 Pipfile이 자동으로 생성되었음을 알 수 있습니다. Pipfile은 TOML 형식입니다. 그리고 Pipfile.lock이라는 JSON 형식의 lock 파일도 자동 생성됩니다.
$ cat Pipfile
[[source]]

url = "https://pypi.python.org/simple"
verify_ssl = true
name = "pypi"


[packages]

"beautifulsoup4" = "==4.6.0"
requests = "==2.18.4"


[dev-packages]

ipython = "==6.2.1"

만든 가상 환경에서 명령을 실행하려면 맨 앞에 pipenv run를 붙입니다. 이것은 Bundler bundle exec에 해당합니다.
$ python -c 'from bs4 import BeautifulSoup'  # pipenv run なし
Traceback (most recent call last):
  File "<string>", line 1, in <module>
ImportError: No module named bs4

$ pipenv run python -c 'from bs4 import BeautifulSoup'  # pipenv run あり
$ ipython  # pipenv run なし
pyenv: ipython: command not found

$ pipenv run ipython  # pipenv run あり
Python 3.6.3 (default, Nov  8 2017, 15:19:48)
Type 'copyright', 'credits' or 'license' for more information
IPython 6.2.1 -- An enhanced Interactive Python. Type '?' for help.

In [1]:

또는 pipenv shell 명령으로 가상 환경을 활성화할 수 있습니다.
$ pipenv shell
$ ipython
$ exit

참고



  • Pipenv: Python Dev Workflow for Humans
  • 공식 문서


  • How to manage your Python projects with Pipenv
  • thoughtbot 회사 기사

  • 좋은 웹페이지 즐겨찾기