- Есть ли способ использовать virtualenvwrapper с venv?
да. Просто укажите WORKON_HOME
в вашем каталоге venvs. Вот что я делаю в своем ~/.zshrc
, и я использую сочетание virtualenv (сейчас редко, только для нескольких устаревших потребностей py2) и venv (наиболее распространенный). Я переименовал значение по умолчанию в .venvs, чтобы было ясно, что это в основном venvs Python 3, а не virtualenvs.
# Python Environment Handling
export WORKON_HOME=$HOME/.venvs # Default name changed from virtualenv to highlight I am using python3 -m venv (aka pyvenv)
export PROJECT_HOME=$HOME/dev
source /usr/local/bin/virtualenvwrapper.sh # symlinked to /Library/Frameworks/Python.framework/Versions/3.7/bin/virtualenvwrapper.sh
- Или можно даже считать, что virtualenvwrapper не нужен из-за venv? (Я не понимаю, как это может быть правдой, поскольку это оболочка, решающая другую проблему)
venv == virtualenv (короче). venv не заменяет virtualenvwrapper по той же причине, по которой virtualenv заменяет его. Ваша догадка на этот счет верна.
- Чем это лучше, чем просто создание псевдонима, который является источником активации?
Ну, вам решать, что вам нужно, но я считаю, что virtualenvwrapper с zsh-плагинами virtualenv и virtualenvwrapper довольно хороши и лучше, чем необработанные псевдонимы.
workon
очень приятно перечислить все продажи, а затем workon speech_analyzer
сразу приступить к делу.
- Другие решения?
Вы также можете настроить хуки для активации venvs при смене каталога, но если это то, что вам нужно, и только это, то это, по сути, pipenv. Pipenv великолепен, если это все, что вам нужно. В Pipenv также есть интересная и многообещающая функция lockfile, но она слишком медленная для разработки и слишком незрелая из-за проблем в производстве, чтобы комментировать их в настоящее время.
Но мне никогда не нравилась среда 1:1 для рабочего процесса проекта по тем же причинам, что и здесь: https://chriswarrick.com/blog/2018/07/17/pipenv-promises-a-lot-доставляет-очень-мало/. В частности, эти потребности совпадают с моими потребностями в единой среде с несколькими проектами: https://chriswarrick.com/blog/2018/07/17/pipenv-promises-a-lot-delivers-very-little/#никола
У меня есть шесть сред на моей машине и около 20 проектов. Pipenv не распространяется на эту ситуацию. Pipenv настаивает на 20 средах для 20 проектов. Это просто не работает и создает больше проблем, чем решает. Если в настоящее время у вас есть рабочий процесс 1: 1, то pipenv может быть тем инструментом, который вам нужен. Одно предостережение: к сожалению, вы можете ~только~ выполнять этот рабочий процесс в pipenv.
person
SwimBikeRun
schedule
08.07.2019