Большинство новичков в Python не знают, как настроить среду разработки, соответствующую последним стандартам, используемым профессиональными программистами. В этом учебном пособии вы узнаете, как правильно создать полностью работающую среду разработки Python с использованием лучших отраслевых практик.
Виртуальные среды
Виртуальная среда помогает нам решать конфликты зависимостей проекта, создавая изолированные среды. Эти «изолированные среды» содержат все полезные вещи, которые могут понадобиться программистам на Python для разработки своих проектов.
Виртуальные среды включают новую копию двоичных файлов Python и автономную копию всей стандартной библиотеки Python. Вот почему он может работать сам по себе.
Использование виртуальных сред дает нам следующие преимущества:
мы можем сохранить наши локальные машинные пакеты нетронутыми
мы можем поделиться зависимостями с другими с помощью requirements.txtфайла
мы можем развернуть приложение Python на выделенном сервере (PythonAnyWhere, Heroku и т. д.)
Потребность в виртуальных средах
Я использую много библиотек для своих проектов. Среди них три фреймворка для разработки
Если вы разработчик Django, я уверен, что вы используете платформу Django rest для создания мощных
Например, я сильно полагаюсь на requestsпакет для некоторых своих проектов, а
Предположим, я установил последнюю версию библиотеки на свой компьютер с Ubuntu, потому что она нужна мне для другого проекта. Кажется, все работает нормально, пока я не попытаюсь использовать свой старый проект, который отлично работал с 2.3.0. Внезапно все ломается.
Что случилось? Может быть API последней версии Django изменился с версии 2.3.0? Причина на данный момент не имеет значения, так как мой старый проект сломан и больше не работает.
Возник конфликт между двумя проектами. Они используют одну и ту же библиотеку, но требуют разных ее версий.
Различные пакеты решают эту проблему. Давайте посмотрим на некоторые, которые выделяются.
До начала
В этом руководстве мы будем использовать Python 3, поэтому давайте начнем с проверки вашей установки Python.
Для этого откройте терминал — cmd/PowerShell в Windows — и введите следующую команду:
python —version
Python 3.9.5 # My result
Примечание. В большинстве систем macOS и Linux установлен Python. Вы можете проверить руководство по установке Python, если вы используете Windows.
Если вы не получили результат формы Python 3.x, есть два варианта:
если эта команда вернула Python 2.xверсию, вам нужно будет использовать python3вместе с этим руководством
если вы получили Unknown commandошибку, попробуйте запустить python3, и если вы получите другую ошибку, следуйте инструкциям по установке Python
Вы можете доказать существование python3бинарника, проверив его версию:
python3 —version
Python 3.9.5
Примечание: если приведенная выше команда сработала, вам нужно будет запустить python3вместо python.
Теперь, когда вы знаете, какая команда Python выполняется на вашем компьютере, давайте перейдем к виртуальным средам.
Встроенный venvмодуль
Давайте воспользуемся встроенным модулем Python venv для создания вашей первой виртуальной среды.
Примечание: для использования этого модуля в вашей системе должен быть установлен Python 3.3 или выше.
Чтобы создать виртуальную среду Python с помощью venv, введите следующую команду:
python -m venv virt1
Примечание: этот -mфлаг означает, что Python запускает встроенный venvмодуль как скрипт.
Это создаст виртуальную среду с именем virt1, но это всего лишь аргумент. Вы можете создать виртуальную среду с любым именем.
Все, что установлено в virt1каталоге, не повлияет на глобальные пакеты или общесистемные установки, что позволяет избежать конфликтов зависимостей.
Активация виртуальных сред
Важно знать, что каждый раз, когда мы хотим использовать созданную виртуальную среду, нам нужно активировать ее с помощью следующей команды:
source virt1/bin/activate
Это не будет работать в каждой системе, поэтому вы можете проверить таблицу ниже, чтобы иметь четкое представление о том, какую команду использовать:
Платформа Оболочка Команда для активации виртуальной среды
POSIX баш/зш $ источник (
рыба $ источник (
csh/tcsh $ источник (
Ядро PowerShell $ (
Окна cmd.exe C: > (
PowerShell PS C: > (
Примечание: $знак POSIX и знак C: >, PS C: >в Windows не являются частью команды.
Как вы могли заметить, я использую оболочку bash в POSIX (macOS и Linux), поэтому я запускаю приведенную выше команду.
После создания среды
После активации виртуальной среды приглашение терминала немного изменится.
Активированная среда
Следующая команда позволяет деактивировать виртуальную среду:
deactivate
Обратите внимание, как ваше приглашение терминала снова изменилось.
Деактивированная среда
Теперь снова активируйте виртуальную среду и используйте whichкоманду для проверки используемого двоичного файла Python:
source virt1/bin/activate
which python
Если все работает хорошо, вы должны получить
/home/daniel/tests/
Если вы deactivateи whichснова, вы должны получить другой результат:
deactivate
/usr/bin/python
Это связано с тем, что при работе в виртуальной среде используется двоичная копия, размещенная внутри этой среды. То же самое относится и к пакетам.
Пип с виртуальными средами
Хотя это не руководство по pip, важно продемонстрировать рабочий процесс между pip и виртуальными средами.
pip — название которого расшифровывается как «Pip Installs Packages» — это менеджер пакетов, используемый для установки и управления пакетами Python.
Это чрезвычайно полезно, когда вы хотите распространять свой проект среди других, поскольку позволяет другим разработчикам и конечным пользователям сразу устанавливать все зависимости вашего проекта.
Например,
pip install -r requirements.txt
Вот requirements.txtфайл, который содержит все зависимости проекта — конкретные версии пакетов.
Чтобы сгенерировать файл зависимостей вашего проекта, вы можете запустить команду ниже:
pip freeze > requirements.txt
Если вы хотите установить конкретную версию пакета, вы можете выполнить pip installкоманду, указав имя пакета, знак двойного равенства (==) и его версию:
pip install package==version
В других ситуациях мы также можем удалить пакет с нашей машины (или виртуальной среды):
pip uninstall
Виртуалэнв
Virtualenv — это внешний пакет, используемый для создания виртуальных сред. На самом деле встроенный Python venvявляется его подмножеством, поэтому virtualenvимеет больше возможностей, чем первый вариант, который мы видели. virtualenvБолее подробно о преимуществах можно узнать venvв официальной документации.
А пока давайте установим virtualenvс помощью pip (убедитесь, что вы деактивировали предыдущий venv), используя команду ниже:
pip install virtualenv
Этот инструмент работает аналогично venv, поэтому давайте проверим его, создав другую виртуальную среду:
virtualenv virt2
Примечание. Перед выполнением вышеуказанной команды убедитесь, что вы deactivateиспользуете другую среду.
Как и в случае с venv, мы должны активировать виртуальную среду перед ее использованием:
source virt2/bin/activate
Если я сейчас установлю новейшую версию запросов, она будет установлена только в виртуальной среде venv2:
pip install requests
Приведенная выше команда выдает следующий вывод:
Collecting requests
...
Installing collected packages: urllib3, idna, chardet, certifi, requests
Successfully installed
Если я запущу pip freezeкоманду, которая распечатает список всех моих установленных пакетов, я получу это:
certifi==2021.5.30
chardet==4.0.0
idna==2.10
requests==2.25.1
urllib3==1.26.5
Как видите, единственные пакеты, которые я получаю, — это последняя версия requests — на момент написания — и ее зависимости.
Другие функции Virtualenv
Мы можем использовать -pфлаг во время работы virtualenv, чтобы использовать определенную версию Python, глобально установленную на машине.
Например, следующую команду можно использовать для создания виртуальной среды virt2с Python3, если на вашем компьютере установлен Python3:
virtualenv -p /usr/bin/python3 virt2
И чтобы удалить виртуальную среду, вы используете rm -rкоманду, как и для любого другого каталога, который хотите удалить:
rm -r virt2
Вы можете узнать больше о расширенном использовании
Виртуальная обертка
Virtualenvwrapper предоставляет очень полезные команды, которые еще больше упрощают работу с виртуальными средами, организуя их все в одном месте.
Как и в случае с virtualenv, его можно легко установить с помощью pip.
pip install virtualenvwrapper
Это создаст файл оболочки, virtualenvwrapper.shрасположенный в вашем ~/.local/bin/каталоге. Эта папка используется для хранения двоичных файлов пакетов, которые позволяют вам использовать пакеты Python непосредственно из вашего терминала.
Перед использованием virtualenvwrapper вам необходимо отредактировать файл конфигурации оболочки. Поскольку я использую оболочку bash, я добавлю следующее содержимое в.bashrcфайл, расположенный в моем домашнем каталоге:
cat <
# Virtualenwrapper settings
export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python
export VIRTUALENVWRAPPER_VIRTUALENV=~/.local/bin/virtualenv
export WORKON_HOME=$HOME/.virtualenvs
export PROJECT_HOME=$HOME/Documents
source ~/.local/bin/virtualenvwrapper.sh
EOT
Это добавит — запишите в конец файла — указанное выше содержимое в.bashrcфайл. Если приведенная выше команда не сработала, откройте файл и измените его вручную.
VIRTUALENVWRAPPER_PYTHONуказывает на двоичный файл Python вашей машины. Вы можете проверить это с помощью следующей команды (без активации
which python
/usr/bin/python # My result
Обязательно измените.bashrcфайл в соответствии с вашим двоичным путем Python.
Примечание: если вы используете Windows, вы можете использовать
Затем мы перезагружаем оболочку bash с внесенными в.bashrcфайл изменениями, выполнив следующую команду:
source ~/.bashrc
Теперь эту mkvirtualenvкоманду можно использовать для простого создания новых сред, помещенных по умолчанию в эту папку:
mkvirtualenv sitepoint
Вы можете увидеть sitepointпапку виртуальной среды, введя WORKON_HOMEпуть, который мы определили выше как $HOME/.virtualenvs:
ls ~/.virtualenvs
sitepoint # Virtual env folder
Чтобы получить список всех виртуальных сред, созданных virtualenvwrapper, вы можете запустить workonкоманду без аргументов:
workon
sitepoint # My result
Мы можем легко активировать виртуальную среду с помощью workonкоманды:
workon sitepoint
Команда для деактивации виртуальной среды такая же, как и та, которую мы использовали ранее:
deactivate
Очень легко переключаться между различными виртуальными средами. Например, в workonдругую виртуальную среду:
workon another_virtualenv
rmvirtualenvДля удаления виртуальной среды следует использовать команду:
rmvirtualenv sitepoint
Заключение
Из этого руководства вы узнали об основном рабочем процессе, которым должен овладеть каждый разработчик Python. Виртуальные среды являются важной частью любого совместного проекта Python, и вы можете мгновенно повысить свою производительность, используя их.
Инструменты там. Теперь пришло время включить их в сложные личные проекты. Используете ли вы