Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Introducing Pipenv

Introducing Pipenv

Sobolev Nikita

March 17, 2018
Tweet

More Decks by Sobolev Nikita

Other Decks in Programming

Transcript

  1. • Храним только "наши" зависимости • Легко читать человеку •

    Трудно понимать машине requirements.txt » cat requirements.txt flask==0.12.2
  2. • Храним все транзитивные зависимости • Трудно читать человеку •

    Легче понимать машине, но все еще сложно requirements.txt » cat requirements.txt click==6.7 flask==0.12.2 itsdangerous==0.24 Jinja2==2.10 MarkupSafe==1.0 Werkzeug==0.14.1
  3. » pip-compile Could not find a version that matches requests

    !=2.18.0, ==2.18.0, >=2.14.2 Tried: 0.2.0, 0.2.1, 0.2.2, ... 2.18.3, 2.18.4, 2.18.4 There are incompatible versions in the resolved dependencies.
  4. certifi==2018.1.18 # via requests chardet==3.0.4 # via requests docker-pycreds==0.2.2 #

    via docker docker==3.1.1 idna==2.6 # via requests requests==2.18.4 six==1.11.0 # via docker, six urllib3==1.22 # via requests websocket-client==0.47.0 # via docker requirements.txt
  5. » cat Pipfile [[source]] url = "https://pypi.python.org/simple" verify_ssl = true

    name = "pypi" [packages] appnope = { os_name = "=='macos'" } enum34 = { markers = "python_version < '3.4'" } [dev-packages] pytest = "*" [requires] python_version = "3.6"
  6. pipenv • Pipfile / Pipfile.lock уже сегодня • Deterministic builds

    • Управляет virtualenv • Проверяет безопасность зависимостей
  7. Проблемы остаются • Проект еще в стадии активного развития •

    Внутри творится просто дичь • Бинарные зависимости; psycopg2 и psycopg2- binary • Нет интеграции с setuptools • Постоянные merge-конфликты • Специфичное комьюнити
  8. History.txt 11.7.2: Bugfixes. 11.7.1: Windows bugfix. 11.7.0:Improvements to lockfile generation

    with private indexes. 11.6.9: Bugfixes. 11.6.8: Fix a Windows bug. 11.6.7: Fix a Windows bug.
  9. Полезные ссылки • Официальный Slack канал #pipenv: pythondev.slack.com • Pipfile

    specs: github.com/pypa/pipfile • Обновленный PyPI: pypi.org • Mimesis: github.com/lk-geimfari/mimesis • Шаблон с Django, Docker, Pipenv: github.com/ wemake-services/wemake-django-template