Рубрики
Без рубрики

Pyenv && pipenv

Если есть что -то, что я узнал с опытом, это почти всегда простой способ сделать … Tagged с Python, новичками, основами, программированием.

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

Одна из этих простых вещей – это объединение среды разработки Python.

Я бы не сказал, что я разработчик Python. Я использую его только для определенного подмножества случаев, в основном требующих больших объемов данных для анализа, машинного обучения и т. Д.

Поэтому интуитивно, когда я настраиваю среду разработки, я стараюсь сделать ее максимально простым, и исходя из других языков и структур программирования, таких как Ruby, Elixir, Node и т. Д., где есть четкое разделение между языком версий и библиотеками почти по умолчанию, I ДА Ожидайте, что Python не будет отличаться.

Неправильный! 😭

Настройка Python – это беспорядок. Python 2 все еще рядом, и он не имеет совместимости с Python 3. Python 3 в то же время имеет так много способов настроить, что он делает его таким запутанным.

Если вы выберете неправильный способ настроить и связать слишком много вещей с системой, то вы получите несовместимость между проектами и всеми другими проблемами.

Тем не менее, есть один тип настройки, который, на мой взгляд, наиболее похож на то, к чему я привык. И он использует Pyenv вместе с Pipenv Для настройки проектов индивидуально и изолированы в их собственных версиях Python и библиотеки.

Давайте продолжим и углубимся в это.

Pyenv

Pyenv это инструмент менеджера Python версий. Он был основан на популярных менеджерах Ruby версии rbenv и Ruby-Build Анкет

Его функциональность довольно проста. Он позволяет вам иметь разные версии Python в вашей среде, которые не зависят друг от друга или системы.

Есть много других инструментов, которые делают что -то подобное, но я считаю, что Pyenv является самым нежившим из всех. Он не требует самого Python, так как он построен со сценариями оболочки, и его не нужно загружать в вашу оболочку.

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

Монтаж

Есть много способов установить Pyenv.

Безусловно, самый простой, если вы находитесь на MacOS или Linux через Homebrew

❯ brew install pyenv

После этого вам нужно позволить своему Bash инициировать Pyenv в начале. Для этого вы можете добавить следующий сценарий инициирования в любую оболочку, которую вы используете.

В моем случае для zsh Мне нужно добавить его в свой .zshrc Но для вас это может быть .bash_profile или .bashrc Анкет

if command -v pyenv >/dev/null 2>&1; then
  eval "$(pyenv init -)"
fi

Это позволит Pyenv манипулировать вашим путем и уделять себе приоритет в средах Pyenv.

И это сделано!

Для получения дополнительных инструкций по установке вы можете проверить их GitHub Page Анкет

Используя Pyenv

Следующее, что нужно сделать, это установить новую версию Python. Вы можете установить столько, сколько вам нужно, даже из разных распределений.

Чтобы увидеть, какие версии доступны, использовать

❯ pyenv install --list

Это даст вам полный список доступных версий.

Давайте продолжим и установим Python 3.9.1

❯ pyenv install 3.9.1

Точно так же вы катитесь на Python 3.9.1, ура!

Последний шаг – сказать вашей системе глобальную версию, которую вы хотите использовать. Вам не обязательно делать это, но это делает вещи немного проще

❯ pyenv global 3.9.1

Поздравляю, у вас есть Python в вашей системе 🙂

Пипенв

Pipenv работает на более низком уровне, чем Pyenv, и они могут очень хорошо работать вместе.

Pipenv – это инструмент, который снова вдохновляется в Bundler, NPM, пряжу и т. Д., Целью поддержания вашей проектной среды хорошей и аккуратной.

Это может быть нелогичным, и у вас может возникнуть соблазн просто установить все в глобальном масштабе Так что он доступен для каждого проекта, который вы используете, но не так! Это простой способ зависеть от библиотек, которые могут быть недоступны при использовании где -то еще.

Кроме того, Pipenv делает сотрудничество очень простым. Все заинтересованные стороны используют настройку окружающей среды в Pipfile, и это гарантирует, что все находятся на одной странице.

Так что же делает Pipenv?

Он использует Pipfile и PIPFILE.LOCK Чтобы сделать снимок зависимости, которые вы используете в проекте. Это позволяет вам работать в закрытой среде, не опасаясь вашей работы, выходящей в другие ваши проектные среды.

Монтаж

После того, как у вас работает Pyenv и находитесь на вашей предпочтительной версии Python, бежать

❯ pip install -U pipenv

Pyenv вроде угонает Pip Команда, чтобы убедиться, что вы работаете в правильной среде.

После этого вы готовы начать использовать Pipenv Анкет

Библиотека предназначена для использования в папке/контексте проекта или проекта, поэтому перейдите к своему предпочтительному каталогу проектов и инициализируйте Pipenv там

❯ pipenv install

Это создаст Pipfile содержащий ваши зависимости и PIPFILE.LOCK содержащий версии и зависимости этих зависимостей.

Традиционно, еще один способ управления зависимостями в проектах Python – это использование Требования.txt файл. Если у вас уже есть один из них в существующем проекте, Pipenv преобразует его в Pipfile С предыдущим шагом и попытаться перенести свои существующие зависимости на него.

Используя Pipenv

Отныне вы готовы начать использовать Pipenv для управления вашими зависимостями.

Чтобы добавить новый, вы можете сообщить Pipenv, что вы хотите установить, и обновит оба Pipfile и PIPFILE.LOCK для тебя

# Installing Jupyter notebooks
❯ pipenv install notebook

Точно так же, ваша новая зависимость была добавлена твоя Pipfile и Pipfile.lock .

Теперь, чтобы «ввести» среду, которую Pipenv создал для вас, вам нужно активировать новую оболочку, используя

❯ pipenv shell
Launching subshell in virtual environment…

Это загрузит ваш текущий удар с зависимостями, установленными в вашей среде Pipenv. Каждая команда, которую вы запускаете в этой оболочке, выполняется в контексте вашего Pipenv.lock.

Чтобы выйти из оболочки просто введите Выход Анкет

Вывод

Есть так много, чтобы узнать о Pyenv и Pipenv, что вам лучше просто следовать документации и попробовать сами, но я гарантирую вам, что это сэкономит вам бесчисленные часы конфигурации и выяснить, что происходит с зависимостью вашего проекта и почему некоторые Проекты терпят неудачу после обновления других не связанных с ними.

Если вы хотите узнать больше о различных настройках среды, которые может предложить Python, и его различия, это действительно Подробный Stackoverflow Сообщение, которое объясняет это очень хорошо. Несмотря на то, что их рекомендация использует Virtualenv + пип Вместо этого стоит взглянуть на различные варианты, обобщенные, чтобы вы могли принять обоснованное решение о том, что вы хотите.

Для получения дополнительных тем, проверьте мой профиль или посетите rarias.dev Анкет

Счастливого кодирования!

Оригинал: “https://dev.to/ronald_arias/pyenv-pipenv-1cko”