Если есть что -то, что я узнал с опытом, это то, что почти всегда есть простой способ сделать что -то. Есть миллионы людей, занимающихся проблемами развития так же, как и вы, так что, скорее всего, кто -то уже споткнулся с способом упростить вещи.
Одна из этих простых вещей – это объединение среды разработки 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”