Linux для программирования python

Как настроить python в Linux под свой проект?

Привет, Хабр! Меня зовут Дмитрий Алексеев, я Data Scientist и являюсь участником профессионального сообщества NTA. Сегодня расскажу как использовать python и Linux «в связке», и как это поможет облегчить вам жизнь.

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

Python интерпретатор предустановлен в большинстве дистрибутивов Linux. Согласно рейтингу TIOBE на текущий момент самым упоминаемым в поисковых запросах языком программирования является python. Python обладает низким порогом входа, но имеет большой спектр возможностей для применения.

Использование python и Linux «в связке» может сильно облегчить вам жизнь. Я расскажу о том, как настроить python в Linux под нужды своего проекта.

Определение виртуальной среды

Виртуальная окружение (или виртуальная среда) — это изолированная среда для проекта. Это «песочница», в рамках которой запускается приложение со своими версиями библиотек, обновление и изменение которых не затронет другие приложения, использующие те же библиотеки. Тем самым использование виртуальных сред позволяет избежать конфликтов версий.

Виртуальное окружение со всеми необходимыми настройками можно «передавать» вместе с вашим приложением. Так другому разработчику будет проще работать с вашим проектом.

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

Проверка версии Python

Как уже говорилось ранее, python предустановлен в большинстве дистрибутивов Linux. Я использовал версию Ubuntu 20.04.

Проверить текущую версию python можно с помощью команды: python3 -V.

Обновление пакетов

Вначале рассмотрим работу с python библиотеками в Linux.

Advanced Package Tool (apt) – это пакетный менеджер, позволяющий производить различные манипуляции с пакетами: устанавливать, удалять, обновлять, искать, загружать без установки. При этом все зависимости будут разрешаться автоматически.

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

В Linux есть список репозиториев, из которых происходит установка пакетов. Список хранится в текстовом файле /etc/apt/sources.list, а также в директории /etc/apt/sources.list.d/. При выполнении команды apt update, apt обращается к списку репозиториев и из каждого репозитория в списке получает информацию о пакетах, находящихся в нем. Вся эта информация сохраняется в операционной системе.

Если выходит новая версия библиотеки, то apt не узнает об этом, пока не будет обновлена информация в репозиториях. Поэтому, если установить пакет, предварительно не выполнив обновление, то будет установлена та версия пакета, информация о которой хранится в системе в данный момент.

Читайте также:  Linux tar show files

Для обновления пакетов необходимо выполнить следующие две команды.

Первая команда: sudo apt update.

Вторая команда: sudo apt -y upgrade.

Флаг -y в команде обозначает автоматическое подтверждение запросов на установку.

Установка пакетов venv

Для работы с виртуальным окружением в Linux нужно установить пакет venv с помощью следующей команды: sudo apt install python3-venv.

Создание виртуальной среды в Linux

Создать виртуальное окружение можно командой python3 -m venv my_venv.

My_venv – название виртуального окружения.

Приведенная выше команда создает каталог с именем «my_venv» (а также родительские каталоги, которые ещё не существуют), содержащий менеджер пакетов pip, интерпретатор, скрипты и библиотеки.

С помощью команды ls -la можно увидеть файлы в текущей директории.

Если вы хотите создать папку с окружением в конкретной директории, то вместо названия окружения нужно указать путь к папке. Например, python3 -m venv ~/my_venv.

Далее перейду в созданный каталог и посмотрю содержимое созданной папки.

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

Каталог bin содержит копию/символическую ссылку двоичных файлов Python.

Каталог include включает в себя С-заголовки, компилирующие пакеты Python.

В каталог share входит python wheels. Python wheels — это формат готовых пакетов для Python, который помогает ускорить разработку программного обеспечения за счет сокращения количества операций компиляции.

Каталог lib в виртуальной среде имеет такую же структуру, как каталог lib в глобальном окружении. И содержит папку site-packages, в которую устанавливаются библиотеки.

Активация виртуальной среды

Виртуальное окружение создано. Для начала работы с окружением нужно его активировать.

Чтобы начать использовать эту виртуальную среду, вам необходимо активировать ее, запустив скрипт под названием activate:

После активации строка консоли будет иметь префикс с именем среды.

Можно проверить версию python.

А также посмотреть список установленных в окружении библиотек.

Установим библиотеку внутри виртуальной среды

Попробую установить библиотеку в окружение.

После активации все библиотеки будут устанавливаться в данное виртуальное окружение.

Чтобы проверить как установилась библиотека, можно попробовать импортировать её.

Если при импорте ошибок не было, значит установка библиотеки прошла успешно.

Совместное использование

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

Для этого создадам файл, в котором будут прописаны все необходимые библиотеки и их версии.

Выполню следующую команду:

Файл requirements.txt содержит все библиотеки (с указанием их версий), которые установлены в данном окружении.

Установить все эти библиотеки можно выполнив одну команду в терминале: pip install -r requirements.txt.

После успешной установки библиотек другой человек сможет запустить ваш проект на своем компьютере.

Деактивация

Чтобы выйти из виртуального окружения, необходимо ввести команду deactivate.

Заключение

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

Читайте также:  Копировать файл через терминал linux

Источник

Какую операционную систему использовать для разработки на Python?

Всем привет.
Изучаю Python/Django для создания сайтов.
Основная цель найти работу по веб разработке на питоне.

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

Подскажите стоит ли переходить на Linux, в чем плюсы минусы, какой дистрибутив выбрать, поделитесь опытом.

Как Linux сочетается с другими языками программирования?

Оценить 2 комментария

Да, миры Python и Windows мало пересекаются в срезе веб-разработки.
Переходить — стоит.
Плюсы — будешь разрабатывать практически в той же среде, в которой будут выполняться твои веб-приложения.
Минусы — сам переходный период (обучение новой ОС). Также, по себе заметил — немного уныло линухи выглядят по сравнению с виндой, но это я на убунте + gnome, другие дистры/оболочки могут быть красивее. Если полностью перейдёшь на другую ОС — наверно, сложно будет поиграть в современные игрушки, тут я не знаю, не игроу.
С другими ЯП — ну, не сможешь разрабатывать на .NET (или это будет так же «увлекательно», как под виндой писать на питоне), но это, как я осмелюсь предположить, тебе и не нужно.

Anton Kuzmichev: под виндой вполне успешно можно писать на питоне, это точно не будет похоже на mono под убунтой, другое дело, что если хочется именно веб, то смысла в винде мало.

Стоит однозначно. Как минимум для ознакомления.

Из дистрибутивов могу посоветовать Ubuntu, он самый, на мой взгляд, простой для знакомства.
Сам использую Lubuntu.

Программирую на Python и могу сказать, что на Linux делается все гораздо проще.
Если на Windows для установки модуля нужно зайти на сайт производителя, скачать архив, распаковать и только потом начинать его использовать (UPD: на нем тоже можно вводить команду :D), то в Linux для этого нужно прописать всего одну команду.
Ну и в большинстве туториалов по всяким модулям и т.п. используется на Linux.

Если совсем не хотите отказываться от Windows (например, из-за игр, как это сделал я), то просто установите Linux второй системой.

Неверно.
В питоне и под виндовс и под линуксом работает PIP, никуда захоидть не нужно — стандартные модули для него ставятся практически одинаково.

Saboteur, это не так. При разработке, например, приложения для работы с Telnet так и пришлось переходить на Линукс, т.к. модули работают только с костылями или вообще никак под виндовс.

Денис, Ну прям не знаю. телнет старейший протокол, на котором даже cmd в виндовс работал еще в вин 2000. Какие проблемы у питона с телнеотм под виндовс — не подозреваю. Может просто не разобрались как в файрвале разблокировать?

Saboteur, я тоже так думал, но оказалось, что Модуль pexpect вообще без костылей в виндовс не работает, приходилось специально plink устанавливать, городить кучу обходных путей, править конфигурацию Pycharm и т.п. Когда перенёс в родную стихию разработку (Debian) — всё встало на свои места. После этого опыта, который кучу времени отнял, стараюсь использовать разработку в родной среде. Понятно, что такое не часто происходит, но у меня уже не раз случалось. В основном это работа с сокетами и сетью.

Читайте также:  Linux segmentation fault core

Денис, Так это в самом модуле указано, что они виндовс не очень.

As of version 4.0, Pexpect can be used on Windows and POSIX systems. However, pexpect.spawn and pexpect.run() are only available on POSIX, where the pty module is present in the standard library. See Pexpect on Windows for more information.

Денис, Нет, я ответил что проблема не в питоне, а в конкретном плагине, который писали под Линукс.
Думаю если тщательно поискать можно найти и ситуацию наоборот, когда какой-то плагин отлично работает под вин и не работает под линукс, какой-нить directpython.sourceforge.net

Для разработки нужно использовать не операционную систему, а удобное для вас окружение (редактор, IDE, etc)

Запускать свой сайт вы можете и на другой системе.

Для веб, конечно лучше запускать под Линуксом, но при этом не факт, что вам будет удобно в нем разрабатывать.
Поставьте для начала Linux Ubuntu в виртуалке, попробуйте среды разработки, сравните в чем удобнее.

Основная разница для начинающего веб-разработчика — это файловая система.

Любую из распространенных. Python прекрасно адаптирован и под Linux и под Windows.
А с появление на Windows 10 подсистемы Ubuntu Linux Subsystem — вообще полная идентичность для утилит командной строки.

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

Linux нормально сочетается с языками программирования.
Кроме .NET — это вам к Windows
Кроме разработки под Apple — это вам к MacOSX

Для перехода я бы предложил самый допиленный под десктопное использование дистрибутив — Ubuntu Linux.

Правда целесообразность этого перехода мне представляется сомнительной.
Все равно среда Linux на сервере (администрирование через конфигурационные файлы) отличается от того, как вы будете администрировать свой личный комп (через GUI).

А для идентичной серверной среды следует использовать Vagrant, Docker, виртуальные машины — на любой операционной системе. Даже если вы работаете под Linux — их использование целесообразно для достижения полной идентичности серверной среде.

Из недостатков Linux — кривоватый графический интерфейс. Который не дотягивает ни до Window, ни до MacOSX. Но с этим можно мириться.

Из возможно вам не очевидных недостатков — запуск под Linux программ предназначенных для Windows будет или вообще невозможет, или совмещен с большими трудностями. То есть придется отказаться от любимых Windows-игр и от ряда программ, таких как Photoshop, например.

Источник

Оцените статью
Adblock
detector