Виртуальные среды Python и управление пространством (в частности, Pipenv) - PullRequest
0 голосов
/ 22 сентября 2018

В последнее время возрос интерес к изучению использования виртуальных сред с Python.Как вы, наверное, уже знаете, они полезны, когда требуется несколько версий одного и того же пакета.Насколько я понял, используя pip, вы не можете различить версии, поскольку он просто использует имя пакета.

Я возьму в качестве примера Pipenv, который, кажется, новый мощный инструмент, также объявленный как новыйстандарт по PyPA.Я прекрасно понимаю, что, как и почему Pipenv делает (основные) вещи.Что я не понимаю (или, что лучше, меня удивляет), так это то, как Pipenv (или любой другой инструмент в виртуальной среде Python, насколько мне известно) управляет пространством на диске.

С помощью Pip вы обычно устанавливаете пакеты в одномпоместите, затем вы просто импортируете их в свой код, вот и все.С Pipenv (или подобным) вы создаете виртуальную среду, в которой у вас все установлено, и она не может обмениваться данными с внешним миром (я знаю, что это своего рода точка зрения).

Теперь давайте предположим, что я работаю надProjectA, затем на ProjectB.У обоих будет свое окружение (где-то в ~ .virtualenvs, для Pipenv).Предположим также, что даже если два проекта имеют разные высокоуровневые зависимости, они имеют одну общую зависимость.Я имею в виду, то же имя, та же версия.Когда я делаю «pipenv install thatpackage » в каждом из случаев, он будет загружен и сохранен отдельно в каждом случае.Я прав?

Если я прав, разве это не пустая трата пространства?У меня будет 2 копии одного пакета на моем диске.Если это повторяется для многих пакетов, вы можете догадаться, сколько места потрачено впустую при работе над многими различными проектами.

Cheers

...