Завершение оптимизации рабочего места

В Части 16« Начало программирования на Python » мы рассмотрели тестирование.



Надеюсь, вы будете использовать полученные знания, чтобы защитить свой код от ошибок.

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

Друг и коллега по работе помогли мне начать разработку профессиональных программ на Python; справедливо, что я доверяю ему эти советы. Спасибо, Шон!

Как отказ от ответственности, это просто рабочий процесс, который мне подходит. Если вы находите это слишком сложным или слишком ограниченным, измените его на то, что вам подходит.

Я недавно отформатировал свой ноутбук специально для этого и сделаю все возможное, чтобы перевести его между macOS, Windows и Linux. Я не ожидаю, что эти инструкции сильно изменятся, поэтому измените номер версии в соответствии с вашей системой.

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

Это означает, что если у вас есть три системы, в которых вы развертываете свой код, вы должны использовать самую низкую версию Python, доступную из всех трех. Например, CentOS 7 использует только Python 3.6.5, тогда как Fedora использует 3.7.4, поэтому вам следует загрузить Python 3.6.5.

Если вы хотите загрузить 3.7.4 для приложений только для Fedora, не стесняйтесь, вы получите функции, представленные в 3.7, которые не были доступны в более ранних версиях.

macOS и Linux

Предварительные требования для macOS

Во-первых, нам нужно установить инструменты командной строки разработчика. Если у вас установлен Xcode и вы запускали его хотя бы один раз, они уже установлены. Если нет, откройте окно терминала (/Applications/Utilities/Terminal.app) и введите следующую команду:

Это вызовет появление диалогового окна с вопросом, хотите ли вы загрузить и установить инструменты командной строки. Идите дальше и дождитесь завершения установки.

Далее нам нужно установить заголовки macOS SDK. Когда вы устанавливаете инструменты командной строки, они загружаются, но не устанавливаются. Чтобы запустить установку, используйте следующую команду:

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

Далее нам нужно установить Homebrew. Homebrew - это менеджер пакетов для macOS, похожий на Chocolatey в Windows или Apt / Yum в Linux. Сделать это можно с помощью команды на сайте Homebrew:

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

После завершения установки мы можем установить pyenv. pyenv позволяет нам устанавливать несколько версий Python таким образом, чтобы они не конфликтовали друг с другом или с системой. Мы также можем выбрать, какую версию Python мы хотим использовать для нашей учетной записи, не влияя на версию Python в системе. Мы будем использовать Homebrew для установки:

Homebrew автоматически извлечет любые зависимости, такие как OpenSSL или Readlines, и установит их одновременно. Если все пойдет хорошо, вы увидите несколько сообщений об успешном выполнении. Иногда мы получаем полезный текст, объясняющий, что нам нужно делать дальше. В этом случае нам нужно добавить pyenv в наш профиль bash, чтобы он был доступен при следующем запуске нашего терминала:

Возможно, вам это покажется сложным, если вы никогда раньше не видели сценариев bash. По сути, это проверяет, установлен ли pyenv, если он установлен, мы вызываем команду eval $(pyenv init -). Если он не существует, пропустите эту команду.

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

Предварительные требования для Linux

При необходимости установите следующие необходимые пакеты для pyenv, используя yum (RHEL / CentOS 7):

Использование apt-get (Ubuntu / Debian):

Python

Теперь мы можем установить любую версию Python, которую захотим. Когда мы впервые начали эту серию, мы были на версии 3.7.3; сейчас мы находимся на 3.7.4.

Выполните следующую команду, чтобы установить Python 3.7.4:

Если все пойдет хорошо, вы увидите сообщение об успешном завершении.

У меня была следующая ошибка, потому что Xcode не был установлен (только для macOS):

ModuleNotFoundError: No module named 'pyexpat'

Поскольку я не хочу, чтобы программа размером 11 ГБ просто сидела и ничего не делала, мне нужно было найти обходной путь:

Сначала я установил xz с помощью brew, затем установил SDKROOT в SDK инструментов командной строки и установил цель развертывания на мою текущую версию macOS (10.14). Я поместил это в свой профиль bash, чтобы мне не приходилось вводить это каждый раз. Если у меня когда-нибудь возникнут проблемы, я закомментирую строку export…, используя # перед командой, и создам новый сеанс терминала. (Вы также можете использовать unset SDKROOT для выполнения того же действия для этого сеанса.)

После успешной установки Python используйте следующие команды, чтобы установить версию Python и протестировать ее:

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

Пакеты Pip

После установки и настройки выбранной вами версии Python мы можем установить несколько pip пакетов, которые помогут нашему рабочему процессу. Вот несколько, которые мне нравятся:

  • Pipx - Устанавливает пакеты pip в свою виртуальную среду, а затем ссылается на ваш путь пользователя.
  • Черный - программа форматирования кода Python, имеющая несколько опций, на одну вещь меньше, о которой вам нужно подумать.
  • Httpie - супер простой HTTP-клиент на Python.

Во-первых, мы обновляем наши pip и setuptools по умолчанию до последней версии и устанавливаем pipx, пока мы на этом.

Pipx прямо сейчас не позволяет устанавливать более одного пакета, поэтому мы установим black и httpie с помощью следующих команд:

Вы можете получить предупреждения о том, что ~/.local/bin не найден на вашем пути. Просто используйте следующую команду, чтобы исправить это:

Наконец, я создаю в своей домашней папке каталог с именем Developer. Это предоставляет папку с изображением инструментов разработчика с водяными знаками (только для macOS). Это позволяет легко найти позже. Здесь живут все мои проекты.

Поскольку я использую продукты Jetbrains, я обычно сохраняю имя папки сгенерированных проектов одинаковым, поэтому я могу легко найти все проекты, созданные в среде IDE (например, ~/Developer/PycharmProjects/testapp/).

Это все, что нам нужно сделать. Любое приложение, которое вы используете для разработки Python, если не указано иное, будет использовать версию Python, установленную вами с pyenv. Ближе к концу этой статьи я включил список программного обеспечения, которое использую. Ниже я включил список руководств, которые помогут вам начать работу с веб-фреймворками.

Окна

Это основано на моем рабочем процессе разработки на моем рабочем ПК.

В Windows я не использую pyenv или pipx. Мой рабочий процесс довольно прост.

Я сохраняю все свои проекты в C:\Dev, затем создаю ярлык для быстрого доступа к этому месту.

Я устанавливаю все необходимые мне версии Python прямо с python.org в C:\Python\, где папка называется 363x86 для 32-разрядного Python 3.6.3. Таким образом, я знаю, какую версию и архитектуру Python я собираюсь использовать для своей виртуальной среды.

Используя это, я могу легко создавать новые папки в C:\Dev и вызывать C:\Python\372x64\Python -m venv C:\Dev\myproject\venv для создания новых виртуальных сред для моих приложений.

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

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

Программное обеспечение

Редакторы

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



Pycharm - действительно тот инструмент, который меня зацепил за Python. Он предоставляет множество инструментов для расширения рабочего процесса. Мои любимые инструменты - это удаленный интерпретатор ssh, встроенный git и функция автозаполнения, не имеющая аналогов в любой другой среде разработки Python, которую я использовал. У него также есть отличный рынок подключаемых модулей, который может помочь еще больше расширить IDE. Он также имеет встроенную поддержку других языков, включая функции редактирования HTML, которые лучше, чем некоторые редакторы, созданные для создания HTML.

Единственный минус в этом - стоимость версии Professional в 200 долларов в год; это легко компенсируется версией сообщества, в которой удалены некоторые функции. Если вы не занимаетесь серьезной Django, Flask или удаленной разработкой, вы ничего не теряете. У него также есть версия Edu, которая включает встроенное руководство по Python.



Microsoft сделала одолжение сообществу Python. Поскольку их сервер Python доступен через расширение, автозаполнение полезно. Это также знакомый редактор (почти полная IDE), который отлично подходит для быстрого редактирования или для компьютеров, которым трудно одновременно открывать два экземпляра PyCharm. Да, и это бесплатно и очень расширяемо.

Моя единственная жалоба по этому поводу заключается в том, что он работает на Electron, что может быть вялым при редактировании больших файлов.



Sublime Text отлично подходит для редактирования больших файлов. Хотя у него нет расширений VS Code или PyCharm, он компенсирует это тем, насколько быстро он может манипулировать файлами размером в мегабайты. Не позволяйте изображению вводить вас в заблуждение, оно доступно в macOS, Windows и Linux, как и два других редактора. Я использую Sublime Text для сверхбыстрого редактирования или просмотра больших наборов результатов. Вы можете использовать его вечно, но каждый раз, когда вы сохраняете файл, вам будет предлагаться купить его. Если вы хотите заплатить за это, это стоит 100 долларов за лицензию на основную версию.

Контроль версий

PyCharm и VS Code уже имеют встроенные функции контроля версий. Sublime Text предлагает Sublime Merge, что нормально, но трудно оправдать 100 долларов за лицензию на основную версию.



Github Desktop, похоже, имеет большинство функций Sublime Merge, но это бесплатно. Он отслеживает изменения и имеет полнофункциональную поддержку GitHub. Если вы используете BitBucket или GitLab, ваш опыт может отличаться, но основные функции все равно должны работать.



Интересный факт: Линус Торвальдс настолько ненавидел использование других средств управления версиями, что в конечном итоге создал систему версий Git для поддержки ядра Linux. Все остальные тоже этого хотели. Если вам кажется, что графический интерфейс неуклюжий, то это инструмент командной строки, который вы так долго искали. Это базовый клиент git, который также может размещать репозиторий git на удаленном сервере. Я использую его больше, чем рабочий стол GitHub, но я все еще больше использую контроль версий PyCharm. Это когда мне нужно выполнить быстрое обслуживание репозиториев git, например, перенастроить несколько репозиториев или удалить последние изменения в устаревших проектах.

Сообщества



Всем нравится Slack, поэтому я рекомендую это сообщество Python. Раньше он назывался Python Developers, но, похоже, его переименовали. Есть вопрос? Просить. С более чем 1000 участников вы обычно получаете быстрый ответ.



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



Вы знали, что это произойдет. Stack Overflow по-прежнему является отличным местом для поиска ответов, и Python не является исключением из этого правила.

Учебники

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



Flask - более удобный веб-фреймворк, чем Django, поэтому я опубликовал его первым. Он отлично подходит для веб-сайтов, которым не требуется серверная часть базы данных (хотя и неплохо справляется). Вы должны использовать Flask для небольших веб-сайтов и базовых API.



Django Girls - это некоммерческая организация, которая занимается обучением девочек и женщин программированию. Хотя он ориентирован на женщин, он также может быть отличным ресурсом для всех. У них есть отличный учебник о том, как начать работу с Django. Некоторые шаги повторяются при первом запуске, но их стоит повторить несколько раз.



У Django также есть свое руководство, но я обнаружил, что ему легче следовать после того, как вы освоите основы от Django Girls. Django - это веб-фреймворк, в который включены батарейки. Лучше всего использовать его при создании веб-сайта, поддерживаемого базой данных.



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

Хотя я дал вам эти ресурсы, они научат вас, как начать использовать эти библиотеки. В конце концов, вы должны экспериментировать и выходить из «учебного режима».

Резюме

На этом мы завершаем серию статей о Python. Надеюсь, вы узнали что-то новое. Мы завершили это, предоставив примеры рабочих процессов разработки, список инструментов и учебных пособий, которые помогут вам продолжить работу.

До следующего раза, продолжай практиковаться!

Я не связан с какими-либо продуктами, перечисленными выше, за исключением того, что я являюсь потребителем. Высказанные здесь взгляды являются моими собственными. Я являюсь основным участником pythondev.slack.com.