Отредактируйте, чтобы ответить на все ваши вопросы:
Когда используется уникальный каталог для виртуальных сред?Какой вариант рекомендуется?Почему?
Каждая виртуальная среда «живет» в своей собственной папке.Все пакеты, которые вы устанавливаете, будут идти туда, особенно если каждая среда будет иметь разную версию Python.
Как мне устанавливать пакеты для каждого проекта, перечисленные выше?
Когда выпереключитесь на среду проекта после того, как вы ее создали, см. мой оригинальный ответ ниже, все установленные пакеты будут устанавливаться исключительно в ту виртуальную среду, в которой вы сейчас работаете.
Вы всегда можете проверить, какой Python используется в данный момент,набрав
which python
в терминале, в котором вы в данный момент активировали среду проекта.Кроме того, вы также можете проверить
which pip
, чтобы убедиться, что при установке с использованием pip install somepackage
вы нацелены на правильный питон.Если вы хотите закрепить пакеты, вы можете сделать
pip freeze > requirements.txt
в любое время, и установленные в данный момент пакеты плюс их версия будут записаны в текстовый файл requirements.txt
.Теперь вы всегда можете создать новую среду, используя
pip install -r requirements.txt
Должен ли я использовать virtualenvwrapper?
Я бы всегда работал в виртуальной среде для каждого проекта, так что другие проекты, которые могутИспользовать некоторые закрепленные версии специального пакета не влияют.
Как легко или безболезненно переключаться между проектами (меняя Python / виртуальную среду в процессе)?
Вы можете определить псевдоним в вашем ~/.bashrc
или ~/.bash_aliases
.В терминале откройте (в моем примере) ~/.bashrc
с помощью текстового редактора, например, vim / nano или по вашему вкусу:
nano ~/.bashrc
, и где-то ближе к концу вы можете добавить строку с псевдонимом дляпереключитесь в каталог проекта и одновременно активируйте среду:
alias activate_proj1="cd ~/project_1 && pyenv activate venv_project_1"
, чтобы вы набирали в терминале только 1050 (также работает завершение табуляции), и обе команды выполняются.Не забудьте снова получить bash-файл после того, как вы что-то измените с помощью source ~/.bashrc
или просто откроете новый терминал.
оригинальный ответ:
pyenv
будет обрабатывать все, что вам нужно:
Мой рабочий процесс (для одного проекта, чтобы сделать его более читабельным) будет следующим:
pyenv install 3.5.1
cd python_projects
mkdir myproject
cd myproject
pyenv virtualenv 3.5.1 venv_myproject
После этого вы можете просто активировать созданный virtualenvpyenv
, используя
pyenv activate venv_myproject
, что откроет вам отличную среду.Здесь вы можете делать все, что вам нужно, например устанавливать пакеты с помощью pip и т. Д. После завершения настройки среды вы можете заморозить среду и создать файл требований:
pip freeze > requirements.txt
, чтобы иметь возможностьвосстановить окружающую среду, если это необходимо.Таким образом, все накладные расходы (установка PATH и т. Д.) Будут обрабатываться pyenv.
Если вы хотите работать над различными проектами, просто активируйте необходимую среду и все готово!