Нужен ли linux python разработчик

Обновлено: 04.07.2024

Про профессию рассказывает Александра Воронцова, наставник курса «Python-разработчик» в Яндекс. Практикуме.

Продолжаем цикл материалов про ИТ-специальности. Каждую описывает «типичный представитель» — опытный специалист и просто авторитетный коллега, тот самый человек, который знает все тайные уголки своей профессии. Мы надеемся, эти материалы помогут школьникам, студентам, переквалификантам, джуниорам и всем тем, кто заинтересован в выборе ИТ-специальности. Цикл не только поможет оценить перспективы, но и даст возможность лучше понять индустрию и особенности профессии изнутри. Обсуждайте и дополняйте материал в комментариях, чтобы сделать его еще полезней.

Про профессию рассказывает Александра Воронцова, наставник курса «Python-разработчик» в Яндекс. Практикуме.

Продолжаем цикл материалов про ИТ-специальности. Каждую описывает «типичный представитель» — опытный специалист и просто авторитетный коллега, тот самый человек, который знает все тайные уголки своей профессии. Мы надеемся, эти материалы помогут школьникам, студентам, переквалификантам, джуниорам и всем тем, кто заинтересован в выборе ИТ-специальности. Цикл не только поможет оценить перспективы, но и даст возможность лучше понять индустрию и особенности профессии изнутри. Обсуждайте и дополняйте материал в комментариях, чтобы сделать его еще полезней.

— Я около двух лет была разработчиком в Яндекс. Диске, а до этого занималась обработкой больших данных в Яндексе. Каждый день примерно на 2 Тб мы считали статистику использованиях фич. Например, как часто люди нажимали кнопку перехода на сайт, после того как им пришло письмо. Сейчас разрабатываю инструменты для международной логистики в Joom, например для отслеживания посылок и оптимизации стоимости перевозок.

Чем занимается Python-разработчик

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

Главная задача python-разработчика ― сделать так, чтобы сервисы понимали запрос, а сайты правильно реагировали на действия пользователей. Порядок работы над проектом может быть такой.

  1. Получить задачу и декомпозировать ее (то есть разбить на маленькие части). Важно услышать, что конкретно от вас хотят, и договориться, кто и что будет делать.
  2. Написать код.
  3. Покрыть код тестами и проверить, что все тесты проходят. Иногда этот пункт меняют местами со вторым, в такой ситуации сначала проверяют, что программа не работает.
  4. Закоммитить (зафиксировать изменения) и пройти код-ревью — получить комментарии от более опытного разработчика и внести его правки.
  5. Выкатить релиз или собрать образ на машине.
  6. Поддерживать код, пока он кем-то используется.

Как проходит типичный день Python-разработчика

Спойлер: магия разработки будет первые пару лет, пока вы изучаете что-то новое. А дальше программирование скатывается в рутину.

День начинает с того, что я провожу код-ревью — проверяю код на ошибки и неточности. И порой появляются принципиальные вопросы, которые мы потом обсуждаем с командой.

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

Написание кода непосредственно на Python занимает малый процент моего рабочего времени. Бывает, что за день пишешь десять строчек, в хорошем случае — 50.

Большую часть времени занимают:

  • чтение кода,
  • тесты,
  • исправление ошибок.

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

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

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


В работе я использую Slack (робот jenkins присылает мне информацию о том, как протестировался коммит на гитхаб), Github, почту, свободный интернет, PyCharm (среда разработки), Things 3 (тудушник), Iterm 2, так как часть действий удобнее проворачивать через командную строку.

Что надо знать Python-разработчику

Нужно базово знать язык программирования. В моем понимании к базовым знаниям относятся:

  • типы и структуры данных: чем они отличаются друг от друга, например, в каких случаях лучше использовать списки, а когда ― кортежи,
  • как хранятся переменные,
  • что такое условные конструкции, циклы и функции.

При этом список нужных для работы скиллов отличается от направления, в котором вы хотите развиваться. Конкретнее расскажу про два самых популярных: веб-разработка и анализ данных.

Веб-разработка

  • Фреймворки. Первый — Flask, с его помощью можно быстро запрограммировать что-то работающее. Но все дополнительные функции нужно подключать и скачивать отдельно, если они нужны, конечно.
  • Django. С ним надо познакомиться хотя бы чуть-чуть, потому что долгое время он был одним из самых популярных. Поэтому велика вероятность, что, придя разработчиком на Python в какую-нибудь компанию, вы застанете проект на Django, и его надо будет поддерживать. Основное отличие Django от Flask — всё, что вам может потребоваться, встроено в сам фреймворк.

На старте нужно знать хотя бы один из этих фреймворков. Остальной набор зависит от того, в каком направлении вы хотите развиваться и какие задачи ставит перед вами тимлид. Обычно третьим советуют изучить асинхронный фреймворк. Например, Async IO либо Fast API.

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

  • Устройство Unix-систем (хотя бы на базовом уровне). Перед собеседованием поработайте с Linux, поэкспериментируйте с командой стройкой и попробуйте какое-то время пользоваться только ей, без графического интерфейса. Вероятно, что когда вы придете на первую работу, единственным способом коммуникации с сервером, на котором запущено ваше приложение, будет командная строка. Этот навык осваивается очень быстро: день на то, чтобы прочитать документацию, и буквально неделя на то, чтобы закрепить знания.
  • SQL и базы данных. Начинающему разработчику не нужны глубокие знания в этой области, но нужно понимать, что такое база данных, и как в ней хранится информация. Будет здорово, если перед первым собеседованием вы развернете какую-нибудь базу данных и попробуете составить к ней несколько запросов.

Анализ данных

  • Математика. Перцентили, нормальное распределение, векторы и матрицы — всё это нужно понимать, чтобы знать, что вы считаете. Обычно сложные вычислительные операции можно реализовать с помощью готовых функций, но без понимания, что и зачем используется, высока вероятность получить на выходе что-то ненужное вместо полезных данных.
  • Pandas. Это библиотека Python, которая часто применяется в анализе данных. Ее используют в работе практически каждый день, поэтому нужно знать, как с ней работать.
  • Визуализация данных станет огромным плюсом для начинающего разработчика. Например, базовая библиотека — Matplotlib. Еще есть Seaborn, которая расширяет возможности первой и в основном служит для более простых данных, например, корреляции или анализа одномерного или двумерного массива.

Soft skills

Хорошие soft skills порой важнее hard skills. Самое важное — умение и готовность задавать вопросы. У меня есть алгоритм, которым я делюсь со своими студентами. Он поможет подготовиться к обсуждению проблемы со старшим коллегой и сэкономить его время. Для этого нужно ответить на четыре вопроса.

Готовность учиться и воспринимать замечания. Нужно уметь услышать позицию другого человека и понять, почему более опытный разработчик считает так или иначе. При этом абсолютно нормально, если джуниор вступает в дискуссию с такими аргументами: «Я слышал, что…», а не «Я знаю, что надо так, и точка». Нужно показать свои знания и спросить, почему старший разработчик думает иначе. В дальнейшем это позволит быстрее набрать базу знаний, дорасти до middle-разработчика и принимать более взвешенные решения.

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

Где учиться на Python-разработчика

Высшее образование

Я ступаю на скользкую дорожку, но считаю, что не всем будет полезно высшее образование в ИТ. Вуз полезен, если решите идти дальше в Computer Science, чтобы заниматься программированием более фундаментально: не создавать новые сервисы, а изучать, каким образом писать эффективнее, или программировать более низкоуровневые системы. Например, университетский курс полезен, чтобы писать операционные системы, среду разработки или базы данных.

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

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

Хорошие советы о том, как проходить собеседования на стажировки в крупные компании, например Google, Apple, Microsoft, Amazon, Facebook и Palantir Technologies, есть в книге Cracking the Coding Interview («Карьера программиста»).

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

Курсы

Есть много курсов на Coursera, Stepik, EdX. Поищите лекции на YouTube, а вопросы задавайте в комментариях. Еще можно читать Хабр. Правда, полезно там далеко не все. Но за неделю можно найти пару хороших статей, которые расширят кругозор и могут однажды пригодиться на собеседовании.

Где в 2020 году выучить Python с нуля? Топ онлайн-курсов и школ

Где в 2020 году выучить Python с нуля? Топ онлайн-курсов и школ

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

Ментор

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

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

Но ментора надо искать так же внимательно, как психотерапевта. Даже если наставник хороший специалист, может оказаться, что вам с ним неприятно работать. Из-за отсутствия методиста полученные знания могут оказаться однобокими и плохо сбалансированными. Например, если ментор посчитает неважным изучать unix, вы его не затроните.

Платные курсы. Я преподаю в Яндекс. Практикуме, где дается большое количество теоретического материала и есть учебные проекты, на которых можно тренироваться. Кураторы и наставники заботятся, чтобы разработчики получили релевантный опыт, трудоустроились в компанию и начали карьеру в ИТ. Они всегда отвечают на вопросы и помогают сориентироваться в неизвестной теме. Но задания одинаковы для всех студентов. Поэтому если вы хотите что-то конкретное, придется заниматься этим дополнительно, а не вместо проектов курса.

Мне нравится подход, когда платные курсы становятся бейзлайном — основной линией, по которой идет обучение. Но всегда будут темы, которые понятны не до конца или оставляют новые вопросы. Чтобы восполнить эти пробелы, можно найти материалы на YouTube, Хабр или в книге, попросить совета у наставника, почитать и дополнительно разобраться.

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

Как подготовиться к собеседованию

Когда я искала свою первую работаю, поступила просто: искала в интернете вопросы для junior Python-разработчика. Так вы понимаете, с чем придется столкнуться и оцениваете свой уровень. Например, на какие-то вопросы сможете ответить сразу, а какие-то — придется погуглить. Соответственно, продолжаете заниматься, через пару месяцев смотрите этот список и пытаетесь дать честный ответ, как ответили бы на собеседовании.

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

Если получится, найдите знакомого, который совсем ничего не понимает в программировании, чтобы он задавал дополнительные вопросы. Это называют методом Фейнмана. Свое кредо он описал так: «Если вы ученый, квантовый физик, и не можете в двух словах объяснить пятилетнему ребенку, чем вы занимаетесь, — вы шарлатан».

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

Что почитать

Telegram-каналы

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

Книги

    . Автор пишет о своем опыте собеседований в крупнейшие ИТ-компании. В книге 189 задач и вопросов, которые помогут восполнить пробелы в знаниях и подготовиться к интервью. . Внутри много советов и рекомендаций, которые научат писать код лучше и чище, проектировать с максимальной продуктивностью, быстро находить в проекте проблемы и разрабатывать качественнее. . Книга про архитектуру и дизайн кода. Автор объясняет, что и почему нужно делать, чтобы стать успешным программистом. Много рассказывается про объектно-ориентированное программирование, но внутри используется Java.

Еще советую пару раз в неделю читать статьи на Habr по любым темам, чтобы не выпадать из состояния «я изучаю программирование».

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

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

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

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

  • Вопрос задан более трёх лет назад
  • 14542 просмотра

Оценить 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, ну, вы сами и ответили, что с Виндовс то не очень, и не только один этот модуль. Ставь linux mint перейти с windows будет проще всего.

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

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

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

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

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

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

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

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

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

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

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

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

Недавно я зарегистрировался на Дзене и, почитав комментарии, весьма удивился тому, сколько людей пробует перейти на Linux, присматривается к Linux, поставили Linux второй системой или окончательно перешли на Linux. И это очень приятно.

И всё было бы хорошо, если бы я в очередной раз не напоролся на статью, написанную человеком "через розовые очки" про то, какой Linux распрекрасный, как там безопасно, как там всё кастомизируется и все срочно должны на него переходить. В итоге народ устанавливает систему, пользуется ею и сносит к чертям, т.к. всё с ней не так гладко, как ему обещали. Ну и конечно же, после этого он идёт строчить комментарии, что всё это ложь, Linux непонятный, Linux неудобный, на Linux нет программ, нет игр, всё нужно делать через страшный терминал, чтобы пользоваться которым, нужно закончить университет и стать программистом.

В большинстве случаев, такие красивые статьи пишутся людьми, которые никогда не пользовались Linux. Ну или может быть, поставили её на 5 минут, сделали красивые скриншоты с новой Фоссой от Убунты и забыли.

Зачем они так делают? Хз. Если честно, я сам не очень понимаю, зачем. Может хотят показать всем, что техноресурс, на котором они пишут, разносторонний и редакторы там шарят в таких сложных и неизвестных штуках, как Linux. А в итоге получаются завышенные ожидания, а результат - разочарование.

Хочу заметить, что у меня нет предпочтений в операционных системах. Я люблю и Linux, и Windows. И пользуюсь обеими системами на двух компьютерах и чувствую себя замечательно.

Сейчас я пишу этот текст, а на соседнем мониторе у меня открыта статья с названием " 10 причин, почему вы должны использовать Linux" . Лол. Давайте пробежимся по ней и посмотрим, насколько там всё правдиво.

"Высокий уровень безопасности, потому что исходный код открыт"

С плюсом соглашусь - Linux действительно безопаснее для обычного пользователя. Но совсем не потому что у программ для Linux зачастую открытый исходный код.

Давайте вспомним, кто главный злодей на ПК с Windows, который может заразить компьютер вирусом и слить все свои личные данные мошенникам. Конечно же это сам пользователь!

Страшно представить, сколько раз мне приходилось чистить систему родственникам и друзьям, потому что кто-то скачал картиночку из интернета с названием милый_котик.jpg.exe и потом объяснял всем вокруг, почему у него голые бабы на экране красуются.

Или вот ещё типичная ситуация: скачал отпрыск мамашки игрушку с торрента. А на трекере написано: " сначала отключите антивирус, а потом нажмите правой кнопкой на setup.exe и запустите от имени администратора ". Ну сынишка так и сделал. Исход очевиден.

Просто я не разу не слышал, что бы кто-то их подхватывал.

А почему их нет? Да просто не рентабельно. Зачем делать вирусы под систему, которой пользуются всего лишь 2% пользователей ПК?

"Высокая стабильность. Система не тормозит через 6 месяцев."

Пфф. Мы что, сравниваем Linux с Windows XP? У меня десятка стоит на ноуте со времён её выхода и с какой скоростью она работала, с такой до сих пор и работает. Времена, когда приходилось сносить систему раз в год уже прошли.

Так Linux стабильнее винды или нет? Ответ: Да. Но за счёт чего?

В Linux зачастую софт распространяется через репозитории, в которых версия софта не меняется со временем, а лишь прилетают патчи.

Что? Захотели свежую версию своей любимой программы? Качайте из другого места в виде deb-пакета, или через Snap/Flatpak, но тут уже стабильность будет ровно такая же, как и на Windows.

"Простота обслуживания. Обновляется одной кнопкой "

Это да. Обновления просто сказка, прямо как на вашем смартфоне. Нажал одну кнопку и ждешь.

А вот с установкой ПО не всё так просто. Иногда свежеустановленная программа почему-то не работает. Приходится лезть в поисковик, где Вы узнаете, что нужно открыть портал в Ад терминал и скопировать туда такую-то команду. Со мной это происходило редко, но почаще, чем на Windows.

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

"Работает на любом оборудовании"

С одной стороны это правда. Берём компьютер 10 летней давности и Linux на нём просто летает. В то время, как работа на Windows без SSD уже начинает сниться в ночных кошмарах.

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

"Бесплатный"

Windows 10, если что, тоже бесплатна. Да, на ней будет горить плашка "Активируйте Windows" и Вы не сможете менять оформление системы. Но программы работают, а что Вам ещё нужно от операционной системы?

"С открытым исходным кодом"

В статье так и не объяснили, чем это для нас хорошо. "От этого выигрывают разработчики". Но я не разработчик, так что промах.

"Простота в использовании"

Да, сегодня Linux уже не такой страшный. Для всего есть графический интерфейс. Многие процессы автоматизированы. Но открывать терминал всё равно иногда придётся.

Да, если Вы пользуетесь только браузером, да калькулятором с файловым менеджером, то Linux подойдёт для Вас идеально. Здесь не будет всяких ненужных функций, которые только мешают работать.

"Гибкая настройка"

А она Вам нужна? Большинство пользователей вообще ничего кроме обоев не меняют и хотят, чтобы всё уже было настроено за них. Да и настройка не такая уж и гибкая обычно оказывается. По настоящему гибкая настройка есть только в KDE. В остальных системах Вам придётся копаться в конфигах и работать с терминалом.

"Образование. Используя Linux, вы изучаете, как работает OC"

Данное утверждение очень конфликтует с пунктом "Простота в использовании". Но честно признать, я считаю, что это реальный плюс Linux.

"Поддержка. На любую проблему можно найти ответ в интернете"

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

Заключение

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

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

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

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

И на этом у меня всё. Желаю быть счастливыми!

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

какой дистрибутив linux лучше подходит для веб-разработки Python?

в настоящее время я разрабатываю Windows, и это нормально, но я ищу, чтобы переместить мою основную разработку Python в Linux. Я уверен, что большинство дистрибутивов будет работать нормально, но есть ли у кого-нибудь причины полагать, что один дистрибутив лучше другого?

в значительной степени распределение не будет иметь значения, поскольку Python присутствует и в значительной степени самодостаточен практически во всех дистрибутивах Linux.

Если вы хотите сосредоточиться на разработке, я бы рекомендовал Ubuntu. Ubuntu, возможно, является одним из наиболее полнофункциональных дистрибутивов "ready for the user", что делает системное администрирование простым, поэтому вы можете сосредоточиться на задачах разработки, которые хотите решить.

Если у вас есть среда Linux, которая является целью вашего кода (например,, RedHat или что-то еще), затем перейдите к дистрибутиву рабочего стола, который соответствует вашей целевой среде (например, Fedora для RedHat, Gentoo для Gentoo, Ubuntu для Ubuntu Server и т. д.)

в противном случае, все они подходят.

у вас дистрибутив должен быть Python 2.6. В противном случае это вопрос выбора.

один совет: никогда не устанавливайте ничего как root (например. python setup.py install ). Устанавливайте вещи только с помощью диспетчера пакетов вашего дистрибутива и используйте виртуальное окружение как пользователь для установки других пакетов.

Ubuntu имеет пакет virtualenv, и его даже можно использовать без установки.

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

Gentoo, вероятно, дает вам большую гибкость с несколькими версиями Python, установленными сразу:

это не позволяет тестировать некоторые старые версии, которые очень популярны в системах на основе Debian, например.

pythonbrew позволяет компилировать и устанавливать несколько версий Python в вашем домашнем каталоге, без необходимости корневого доступа.

это мгновенное тестирование вашего кода с несколькими версиями Python благодаря'токс'. По умолчанию tox найдет ваш системный python(ы), но вы можете установить пользовательские интерпретаторы, которые вы создаете с pythonbrew, например.

вот токс.ini вы можете использовать с Jenkins для непрерывной интеграции. С этой установкой вы можете установите jenkins затем "su-jenkins" и используйте pythonbrew для установки всех версий Python, которые вы хотите протестировать.

это так просто, и не важно, какой дистрибутив Linux вы используете.

подробнее о настройке Jenkins см. На веб-сайте Tox.

Я использую RHEL и был очень доволен, поэтому я бы сказал, что Fedora будет в порядке. Я использую Debian дома ,и это здорово (безголовый, поэтому там нет интернета).

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

большинство основных дистрибутивов будут включать Python и Apache, так что это действительно просто вопрос выбора. Если вы новичок в Linux, я бы предложил Ubuntu или Fedora. Как для новых пользователей и отличная поддержка сообщества.

Как уже упоминалось в других ответах, интерпретатор Python 2.6 будет доступен во всех последних выпусках дистрибутива Linux. Это не должно влиять на ваш выбор.

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

в качестве примера мне нравится использовать Eclipse с PyDev для разработки приложений Python в любом OS, но официальные репозитории Ubuntu имели только Eclipse 3.2 (с 2006 года) до октября прошлого года, когда они, наконец, обновились до 3.5 в последнем выпуске.

Я работаю с Python на Cento 5.4 и Fedora 12, и я очень счастлив.

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

любой дистрибутив рабочего стола, как Ubuntu, OpenSUSE, Fedora, . это нормально, но если вы хотите всегда иметь последние версии, я рекомендую ArchLinux.

Я думаю, что помню подкаст с Гвидо Ван Россумом и его основной командой разработчиков python в те дни, и один из этих основных разработчиков python теперь используется Canonical, чтобы позаботиться об интеграции python для дистрибутива ubuntu. Так что объясняет, почему Ubuntu является гораздо более подходящие для Python дистрибутива по сравнению с другими дистр.

с другой стороны, дистрибутив Gentoo linux также имеет python, интегрированный в систему управления пакетами Portage. Так что gentoo и ubuntu, я бы сказал, хороши для системы разработки python и каждый представляют оба конца спектра.

Как установить Python на Linux

В последнее время, среди нового поколения разработчиков программного обеспечения большую популярность набирает язык программирования Python (Питон). На примере Python, мы видим высокоуровневый язык, который не нуждается в компиляторе и применяется для написания самого разного вида софта (мобильные приложения, веб-разработка, СПО под Линукс, системы искусственного интеллекта и machine learning, Data Science и др.). Надо отметить, что профессия программиста на Python сейчас достаточно популярна и востребована среди молодежи, ей обучают на многочисленных курсах, да и предложения по зарплате очень даже неплохие.

Так как программы, разработанные на Python, не компилируются, то роль интерпретатора байт-кода играет CPython. Исходный код программ, написанных на питоне, хранится в файлах с расширением .py.

В ОС Linux язык Python играет важную роль, он используется для системного администрирования, и именно на нем написаны такие известные программы, как GIMP, Blender и др. В Линукс интерпретатор питон уже установлен «по умолчанию», но как правило, разработчику необходима или наиболее свежая версия или же несколько версий Python сразу. На сегодня, последняя стабильная версия языка Python — это 3.9.2, скачать ее можно на официальном сайте проекта.

В этой статье мы расскажем все тонкости установки Python для Linux, на примере Ubuntu 20, Debian 10, а также CentOS 7/8.

Подготовка к установке Python под Ubuntu 20 (Debian 10)

Как мы уже писали ранее, Python должен быть установлен «по умолчанию» в стандартном пакете сборки Ubuntu 20.04. Перед выполнением инсталляционных работ, наша задача — проверить какая версия питон у нас уже установлена в системе. Сделать это можно с помощью следующей команды:

Версия Python в ОС Ubuntu 20

В нашей ОС Ubuntu 20 уже есть версия Python 3.8.5. Существует еще одна полезная команда, с помощью которой можно узнать, какие вообще версии Python установлены в нашей ОС Линукс, см. ниже на скриншоте:

Все версии Python, установленные в Ubuntu 20 по умолчанию.

Сейчас мы покажем, как установить Python на Ubuntu двумя популярными способами:

  1. с помощью apt (используя deadsnakes PPA);
  2. из исходников, скачанных с официального сайта.

Все команды следует выполнять или под пользователем root, или используя sudo.

Установка новой версии Python из deadsnakes PPA

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

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

Затем необходимо включить deadsnakes PPA (Personal Package Archive), для этого выполним следующую команду:

Включение deadsnakes PPA

После этого действия, еще раз выполним команду:

Сейчас установим версию Python 3.9:

Установка Python 3.9

На следующем этапе, мы опять проверим список установленных в системе версий Python и видим, что добавилась версия 3.9:

Все версии Python (включая 3.9), установленные в Ubuntu 20.

Сборка Python 3.9.2 в Linux из исходников

Этот способ может показаться немного сложнее предыдущего, но зато с помощью него можно установить самую свежую версию Python, которая доступна на официальном сайте. Процесс установки опробован на ОС Ubuntu 20, также его можно применять и на Debian 10.

FTP сервер официального сайта проекта Python

Перед началом процесса работ по установке выполним команды для обновления системы:

На следующем шаге, необходимо инсталлировать необходимые нам для работы пакеты:

Инсталляция необходимых для сборки Python пакетов

Затем перейдем в папку /tmp и скачаем в нее архив с официального сайта Python*:

*Примечание: можно использовать как команду wget, так и команду curl.

Скачиваем архив с официального сайта Python командой wget

Cейчас распакуем этот архив во временную папку и затем его сразу же и удалим:

На следующем этапе, запустим команду, которая выполнит подготовку к установке (enable-optimization — служит для оптимизации двоичного файла Python). Исполнение данной команды займет некоторое время:

Подготовка к установке Python 3.9.2

Для того, чтобы начать процесс сборки, выполним команду*:

*Примечание: цифра 2 указывает на количество ядер процессора. Узнать эти данные можно с помощью команды nproc.

Выполнение команды make -j

Если в процессе сборки будут замечены проблемы, то необходимо запустить сборку в однопоточном режиме, следующим образом (без параметров -j 2), просто выполнив команду make.

Теперь установим Python 3.9.2 с помощью команды altinstall, последняя версия Python инсталлируется наряду со старыми версиями, т.е. у вас в ОС будет несколько версий языка Python. Если же вы используете команду install, то новая версия питон будет установлена поверх старых (а все старые версии будут удалены).

*Процесс инсталляции Python путем сборки пакета из исходников может занять длительное время.

В результате, в нашей ОС Ubuntu 20 (Debian 10) будет установлено сразу несколько версий языка Python, у нас конкретно — это версии 3.9.2 и 3.8.5, проверить можно с помощью команд:

Установлено несколько версий Python в ОС Линукс

Особенности установки Python на CentOS

Для инсталляции Python на CentOS версии 7 необходимо использовать репозиторий epel (Extra Packages for Enterprise Linux) или же DNF (Dandified YUM, т.е. yum нового поколения) для CentOS 8.

Для способа с использованием DNF выполним следующие команды:

  1. Проверим обновления нашего диспетчера пакетов:
  2. Установим стабильную версию Python 3 из репозитория:
  3. Проверим, какая точно версия Python у нас инсталлировалась:
  4. Чтобы установить инструментарий для разработчиков, выполним следующую команду:

Если же вы будете использовать репозиторий epel, то следуйте простым инструкциям:

  1. Подключите репозиторий epel для начала работы:
  2. Затем установите Python (например, версии 3.6):
  3. Для проверки номера версии введите команду:
  4. Для отображения последней установленной в вашей ОС версии используйте команду:

Как создать и настроить виртуальную среду

Для чего нужна виртуальная среда? С помощью виртуальной среды мы можем для каждого своего проекта на языке Python выделить отдельную область (со своими зависимостями, с установленными модулями питон, разными версиями языка и т.д.).

Работа с пакетом virtualenv

Например, у нас есть Project A и Project B, для каждого из них мы можем создать свою виртуальную среду, сделать это можно с помощью venv, выполнив несложные команды:

  1. Создаем каталог для нового проекта my_project и переходим в него:
  2. Выполним команду, чтобы создать виртуальную среду:
  3. На данном этапе необходимо ее активировать:

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

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

Работа с виртуальной средой с помощью virtualenvwrapper и pip

Все действия исполняем для пользователя root, чтобы перейти в root, выполним команду:

    Для начала устанавливаем менеджер пакетов pip:

Устанавливаем менеджер пакетов pip

Установка virtualenv и virtualenvwrapper

Добавим в конец файла следующие строки:

Сохраним изменения и закроем файл.

А) Для создания новой виртуальной среды (например, ansible) используется команда:

Б) Для удаления виртуальной среды:

В) Чтобы активировать нужную вам виртуальную среду:

Г) Для выхода из среды:

Д) Показать список установленных пакетов:

Выполнение команды pip3 list

Е) Для инсталляции конкретных пакетов:

Заключение

В этой статье мы рассказали нашим читателям об использовании языка программирования Python и подробно изложили два способа установки последней версии Python для ОС Linux (на Ubuntu 20, Debian 10, CentOS 7 и 8). Также дали основные понятия о работе с виртуальной средой.

Читайте также: