Комментарии 12
Довольно элегантное решение. В Node.js оно радует. Посмотрим обрадует ли в этом случае)
Вот не нужно так делать:
. Данное действие, скорее всего, добавит текущий каталог в PYTHONPATH, но, возможно и нет. Зависит от того, пуста ли переменная PYTHONPATH. Если вам нужно добавить что‐то в переменные типа *PATH, то используйте
export PYTHONPATH="./.pip:$PYTHONPATH"
. Данное действие, скорее всего, добавит текущий каталог в PYTHONPATH, но, возможно и нет. Зависит от того, пуста ли переменная PYTHONPATH. Если вам нужно добавить что‐то в переменные типа *PATH, то используйте
${VARNAME:+:}
вместо двоеточия, чтобы не получить в результате пустой элемент, который часто имеет значение вроде «текущий каталог» или «каталог(и) по‐умолчанию».Мне хватает pyenv c штатным плагином virtualenv.
Позволяет хранить на машине сколько угодно версий python, встраивается в командный шелл, автоматически включает окружение и переходе в папку и выключает при выходе из неё.
С
Позволяет хранить на машине сколько угодно версий python, встраивается в командный шелл, автоматически включает окружение и переходе в папку и выключает при выходе из неё.
С
pip -t
одна сложность — надо не забывать писать параметр. Лучше сделать алиас уже с параметром.>> Чтобы просто установить и изолировать зависимости проекта, virtualenv часто оказывается слишком тяжелым решением.
серьёзно? можно реальный пример?
серьёзно? можно реальный пример?
«Тяжесть» решения — субъективная величина. Мне virtualenv через несколько лет использования действительно стал казаться слишком тяжелым для моих задач. Неохота стало делать activate и deactivate. Virtualenvwrapper мне не нравится, да и в Павершелле не работает, а я сейчас почти всегда в нем. Я перестал им пользоваться этими инструментами и начал ставить пакеты глобально. Да, это плохая практика, но мне не мешало. В моем мире virtualenv — слишком тяжелый инструмент.
Теперь, когда узнал о таком простом приеме, начал использовать его — и не пожалел.
Если в вашем мире нет примеров, когда virtualenv — это слишком тяжело, пользуйтесь virtualenv ради бога. Никто ж не запрещает. Значит, в вашем мире это идеальный инструмент.
Теперь, когда узнал о таком простом приеме, начал использовать его — и не пожалел.
Если в вашем мире нет примеров, когда virtualenv — это слишком тяжело, пользуйтесь virtualenv ради бога. Никто ж не запрещает. Значит, в вашем мире это идеальный инструмент.
ээ, и оно с питон пакетами как-то дружит?
С чем он только не дружит.
nix-shell так вообще бомба.
nix-shell так вообще бомба.
Присоединяюсь к предыдущему комментарию.
По теме: вот ссылки с первой страницы гугла по запросу «nix packet manager python»:
Getting started with Nix package manager
RhodeCode and Nix Package Manager
Nixos Container Example: Python Web Development
По теме: вот ссылки с первой страницы гугла по запросу «nix packet manager python»:
Getting started with Nix package manager
RhodeCode and Nix Package Manager
Nixos Container Example: Python Web Development
>> 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, те же не атомарные апдейты, только надо еще затратить усилия, чтоб заставить это работать. Но зачем?
Т.е. тот же virtual env, те же не атомарные апдейты, только надо еще затратить усилия, чтоб заставить это работать. Но зачем?
Интересное решение, но насколько я понимаю, в отличие от того же virtualenv, оно будет работать только в корне проекта.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
«pip -t» — простая альтернатива virtualenv