Pull to refresh

Comments 12

Довольно элегантное решение. В Node.js оно радует. Посмотрим обрадует ли в этом случае)
Вот не нужно так делать:
export PYTHONPATH="./.pip:$PYTHONPATH"

. Данное действие, скорее всего, добавит текущий каталог в PYTHONPATH, но, возможно и нет. Зависит от того, пуста ли переменная PYTHONPATH. Если вам нужно добавить что‐то в переменные типа *PATH, то используйте ${VARNAME:+:} вместо двоеточия, чтобы не получить в результате пустой элемент, который часто имеет значение вроде «текущий каталог» или «каталог(и) по‐умолчанию».
Мне хватает pyenv c штатным плагином virtualenv.
Позволяет хранить на машине сколько угодно версий python, встраивается в командный шелл, автоматически включает окружение и переходе в папку и выключает при выходе из неё.

С pip -t одна сложность — надо не забывать писать параметр. Лучше сделать алиас уже с параметром.
>> Чтобы просто установить и изолировать зависимости проекта, virtualenv часто оказывается слишком тяжелым решением.
серьёзно? можно реальный пример?
«Тяжесть» решения — субъективная величина. Мне virtualenv через несколько лет использования действительно стал казаться слишком тяжелым для моих задач. Неохота стало делать activate и deactivate. Virtualenvwrapper мне не нравится, да и в Павершелле не работает, а я сейчас почти всегда в нем. Я перестал им пользоваться этими инструментами и начал ставить пакеты глобально. Да, это плохая практика, но мне не мешало. В моем мире virtualenv — слишком тяжелый инструмент.

Теперь, когда узнал о таком простом приеме, начал использовать его — и не пожалел.

Если в вашем мире нет примеров, когда virtualenv — это слишком тяжело, пользуйтесь virtualenv ради бога. Никто ж не запрещает. Значит, в вашем мире это идеальный инструмент.
ээ, и оно с питон пакетами как-то дружит?
>> The following environment can be used in a nixos-container for using traditional python package managers (pip, buildout etc.) in an impure way within a container

Т.е. тот же virtual env, те же не атомарные апдейты, только надо еще затратить усилия, чтоб заставить это работать. Но зачем?
Это как минимум не хуже venv, а в преспективе — лучше.
Интересное решение, но насколько я понимаю, в отличие от того же virtualenv, оно будет работать только в корне проекта.
Sign up to leave a comment.

Articles