No Image

Программирование на python в linux

СОДЕРЖАНИЕ
354 просмотров
10 марта 2020

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

Для написания своей первой программы на Python в Linux, просто запустите свой любимый Linux и следуйте шагам этого совета.

Для написания Python-программ можно использовать любой из текстовых редакторов (я буду рассматривать редактор vi/vim). Не пугайтесь, основное количество программистов не использует для написания простых (и не только!) программ какое-либо многофункциональное программное обеспечение (типа сред программирования и т.п.). Достаточно воспользоваться тем, что есть под рукой!

Давайте попробуем посмотреть наличие Python в вашем дистрибутиве Linux. Для этого выполните команду: which python и, в случае успеха, вы увидите что-то вроде этого:

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

Создадим каталог, в котором мы будем практиковаться в написании программ на Python и назовем его testplace: mkdir testplace и перейдем в него, выполнив команду: cd

Теперь создадим текстовый файл first.py, который и будет нашей первой программой на Python. Выполните команду: touch first.py и посмотрим его наличие командой: ls он обязательно там должен появиться!

Обратите внимание, что расширение у созданного нами файла должно быть .py. Это расширение стандартно для программ на Python и вскоре вы увидите, что очень много программ на Python уже существуют в вашей системе (если у вас Linux/Unix).

Теперь приступаем к написанию кода нашей первой программы на Python.

Откроем созданный нами файл в редакторе vi/vim: vi first.py и впишем в него следующие строки: #!/usr/bin/python
# My first program on Python!
print "Hello World. "

Выйдем из файла с сохранением, выполнив: :wq .

Для того, чтобы выполнить написанную нами программу в Linux, нам необходимо назначить ей права на выполнение. Сделаем это командой: chmod x first.py

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

Код нашей первой программы очень прост:

1 строка ( #!/usr/bin/python ) – мы указываем путь к интерпретатору. Этой строкой будут начинаться многие дальнейшие наши программы, поэтому введем это за правило.

2 строка ( # My first program on Python! ) – комментарий. Все комментарии начинаются со знака #. Заметьте, что предыдущая строка – не комментарий!

3 строка ( print "Hello World. " ) – это просто вывод на экран надписи "Hello World. ".

Мы с вами написали крайне примитивную программу, выводящую на экран всего лишь одну строку, но многие учебники по программированию начинаются именно с этой "программы". Это стандарт, с которого начинают все программисты. С него начали и мы.

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

Оригинал: 8 Best Python IDEs for Linux Programmers
Автор: Aaron Kili
Дата публикации: 8 февраля 2018 года
Перевод: А. Кривошей
Дата перевода: июнь 2018 г.

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

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

В этой статье мы перечислим 8 лучших IDE для Python в Linux. Независимо от того, являетесь ли вы новичком в программировании или опытным разработчиком, вы можете найти здесь что-то полезное для себя.

1. PyCharm

PyCharm – это мощная, кросс-платформенная, настраиваемая среда разработки Python с поддержкой плагинов, которая объединяет все инструменты разработки в одном месте. Она имеет бксплатную версию с открытым исходным кодом, а также платную профессиональную.

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

Имеет встроенные инструменты разработчика, такие как интегрированный отладчик, профайлер Python; встроенный терминал, интеграция с основными VCS и встроенными инструментами для работы с базами данных и многое другое. Она очень популярна среди программистов Python и предназначена для профессиональных разработчиков.

2. Wing Python IDE

Wing Python IDE – это настраиваемая и гибкая профессиональная среда разработки Python с мощным отладчиком и интеллектуальным редактором.

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

Читайте также:  Смартфон meizu m6s 32gb

Она имеет хорошую интеграцию с App Engine, Django, PyQt, Flask, Vagrant и т.д. Wing поддерживает управление проектами и контроль версий с помощью Git, Mercurial, Bazaar, Subversion и многих других систем. Она становится популярной среди разработчиков Python, и многие теперь предпочитают ее PyCharm.

3. Eric Python IDE

Eric – многофункциональная среда разработки Python, написанная на Python. Она основана на кроссплатформенной графической библиотеке Qt, интегрированной с очень гибким редактором Scintilla. Поддерживается неограниченное количество редакторов.

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

Eric имеет интегрированный класс браузера и веб-браузера, интегрированный интерфейс управления версиями для репозиториев Mercurial, Subversion и Git в качестве основных плагинов и многое другое. Одной из наиболее важных функций, которая отсутствует во многих IDE Python, является интегрированная система документации исходного кода.

4. PyDev For Eclipse

PyDev – это полноценная многофункциональная среда разработки Python для Eclipse. Она поддерживает интеграцию c Django, завершение кода, завершение кода с автоматическим импортом и анализ кода.

PyDev предлагает рефакторинг, отладчик, удаленный отладчик, браузер токенов, интерактивную консоль, интеграцию юнит тестов и интеграцию с PyLint. Вы можете использовать его для разработки на Python, Jython и IronPython.

5. Spyder IDE

Spyder – это научная среда разработки Python с множеством функций для исследований, анализа данных и создания научных пакетов. Она поставляется с многоязычным редактором с браузером функций/классов, функциями анализа кода (с поддержкой pyflakes и pylint), завершением кода, горизонтальным и вертикальным разделением страницы.

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

6. Pyzo Python IDE

Pyzo – это простая, бесплатная и открытая IDE для Python. В ней используется conda, OS-agnostic и менеджер двоичных пакетов на уровне системы. Однако он работает без интерпретатора Python. Позиционирование проекта – простота и интерактивность.

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

7. GNU Emacs For Python Programming

Emacs – это бесплатный, расширяемый, настраиваемый кроссплатформенный текстовый редактор. Emacs уже имеет встроенную поддержку Python через «python-mode». Если вы поклонник Emacs, вы можете создать полную IDE для программирования на Python, интегрировав пакеты, перечисленные в руководстве Python Programming in Emacs в Emacs wiki.

8. Vim Editor

Vim – популярный, мощный, настраиваемый и, прежде всего, расширяемый текстовый редактор. Он часто используется как среда разработки Python многими пользователями Linux. Чтобы настроить его как IDE, вы можете начать с использования Python-mode, плагина для разработки приложений Python в Vim.

Vim может быть сложен в настройке для новых пользователей, но как только вы пройдете через это, у вас будет идеальное сочетание (я имею в виду Vim и Python). Существует несколько расширений, которые вы можете использовать для настройки полноценной, профессиональной IDE для Python. Дополнительную информацию см. в документации Vim и Python wiki .

Резюме

IDE может сделать ваше программирования приятным или ужасным. В этой статье мы выделили 8 лучших IDE для Python в Linux. Если мы пропустили что-то важное, дайте нам знать в комментариях. Также дайте нам знать, какую IDE вы используете в настоящее время для программирования на Python.

На нашем сайте есть еще следующая статья о среде программирования PyCharm для Python: "PyCharm: Python IDE для профессиональных разработчиков".

С IDE для других языков программирования вы можете познакомиться в статьях

Стандартные и нетривиальные задачи системного администратора

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

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

Python vs Bash

Bash (Bourne Again Shell) – наиболее часто используемая командная оболочка по умолчанию в операционных системах GNU/Linux. Она включает в себя простой язык программирования, который позволяет при помощи условных операторов и операторов цикла использовать утилиты и программы операционной системы для написания как простых, так и сложных скриптов. В этом плане bash, несомненно, обладает некоторыми преимуществами, в частности, универсальностью и доступностью. Для того чтобы написать скрипт на bash, установка дополнительных пакетов не требуется – достаточно создать файл вида script_name.sh с последовательно исполняемыми операциями и запустить его либо добавить в качестве задачи планировщика cron.

Читайте также:  Файл mrt что это

Вот далеко не полный список задач, которые можно решить с использованием bash-скрипта:

  • вывод нескольких последних строк лога или поиск и выборка ключевых слов с последующим сохранением в отдельный файл;
  • архивирование каталога с данными с последующей отправкой архива на удаленный компьютер по ssh или telnet;
  • настройка системы бэкапа файлов базы данных с использованием дампинга;
  • запрос информации о конфигурации нескольких компьютеров в сети и отправка файла с результатами по e-mail;
  • поиск дубликатов файлов на диске с последующим выводом списка имен и запросом на удаление;
  • рекурсивная замена владельцев отдельных файлов и каталогов на диске.

Стоит отметить, что возможности командного интерпретатора зачастую используются не полностью. Многие администраторы выбирают Bash для написания простых или средних по сложности скриптов, а более крупные проекты или специфические задачи, где требуется работа с разнообразными входными данными, многомерными массивами, сокетами доверяют Perl, Python или Ruby. Отчасти это связано с проблемами переносимости bash-скриптов на другие платформы, например, Windows, отчасти с тем, что Bash воспринимается скорее как средство автоматизации работы с файлами и утилитами, чем полноценный скриптовый язык, даже несмотря на наличие в арсенале sed и awk . Еще одним минусом Bash является то, что при выполнении скрипта каждая запущенная с его помощью утилита создает свой процесс, что отражается на скорости выполнения и уровне использования ресурсов системы.

В отличие от Bash, Python является полноценным объектно-ориентированным языком программирования. Он входит в состав большинства распространенных дистрибутивов GNU/Linux, что позволяет использовать его в качестве альтернативной основы для написания скриптов, решающих задачи системного администрирования. Вот лишь несколько причин, по которым выбор нередко падает на Python:

  • удобочитаемость и компактность кода. Благодаря соблюдению четких синтаксических правил скрипт, написанный на Python, будет понятен любому IT-специалисту, знакомому с программированием, даже если он видит этот код впервые. В то же время, при внесении изменений следует обращать внимание на правильную расстановку отступов – в Python они используются в качестве разграничителей блоков кода;
  • наличие (даже в стандартной комплектации) большого количества модулей, подключаемых с помощью оператора import. Каждый из модулей состоит из набора функций и методов, которые поддерживают основные системные протоколы и форматы и легко используются при написании собственного кода. Таким образом, экономится время, а скрипт будет выглядеть более структурированным. Возможности Python также позволяют написать и подключить собственный модуль, если поставленная задача отличается специфичностью решения;
  • кроссплатформенность. Скрипты Python работают и в среде Windows, и в MacOS, и в UNIX, включая FreeBSD и GNU/Linux. Этот язык широко используется и на мобильных платформах, таких как Symbian, Android. В этом преимущество Python – Bash такими возможностями не обладает и является «встроенным» инструментарием только для семейств *NIX, *BSD и GNU/Linux. Однажды написанный на Python, скрипт с большой долей вероятности будет работать на разных платформах, решая схожие задачи, при условии, что код не будет содержать специфических для конкретной операционной системы функций.

Python является подходящим инструментарием для решения следующих задач администрирования:

  • парсинг лога или конфигурационного файла с использованием регулярных выражений;
  • разработка приложений, в том числе нестандартных, для работы с базами данных MySQL, Oracle, PostgreSQL, Sybase и др.;
  • сбор и анализ статистики интернет-трафика с нескольких IP-адресов;
  • преобразование данных в различные форматы, например, конвертация .ini-файлов в текст при помощи модуля ConfigParser;
  • работа с файлами сервера при помощи FTP-клиента;
  • поднятие простого прокси-сервера;
  • мониторинг работоспособности сервиса, запущенного на сервере, с отправкой предупреждений на e-mail администратора в случае сбоя;
  • поднятие ppp-соединения с использованием программы автодозвона;
  • поиск дубликатов с запросом на удаление или перемещение в каталоге с большим количеством файлов;
  • проверка целостности архивов бэкапа при помощи алгоритма md5;
  • и т.д.

Некоторые часто используемые модули Python

Стандартный инструментарий Python позволяет системному администратору достаточно легко создавать полезные в работе скрипты или приложения вне зависимости, идет ли речь об операциях с файлами и каталогами (модули os, re, glob, fileinput, zipfile и др.), сетевых протоколах (модули socket, ftplib, urlib, poplib, imaplib, smtplib, telnetlib и др.) или базах данных (модули mySQLdb, cx_Oracle, psycopg2, Sybase и др.). Описываемые ниже примеры наглядно показывают, каким образом возможности Python используются как для решения повседневных задач (таких как создание дампа базы данных MySQL, получение статистики использования ресурсов сервера), так и для написания простого FTP-клиента, выполняющего поиск файлов по шаблону и скачивание их в локальный каталог.

Читайте также:  Гугл талк андроид что это

socket

Модуль socket позволяет создавать программные интерфейсы для обмена данными между процессами на стороне и клиента, и сервера. По умолчанию он поддерживает создание сокетов домена Internet для IPv4 (константа socket.AF_INET). При необходимости также есть возможность создать сокет домена UNIX (константа socket.AF_UNIX), если процессы локальны. Модуль socket участвует в создании различных сетевых приложений, например, в связке веб-сервер/браузер, почтовый сервер/почтовый клиент. Для системного администратора примером использования модуля socket может служить следующий скрипт srvstat.py :

Сервер serverhost.ru ожидает входящих соединений на порту 52001. При успешном подключении с использованием telnet он выдаст приглашение «Connection established. Ready for request» (Соединение установлено. Ожидается запрос). Единственную команду, которую сервер воспримет, будет get srvstat – она последовательно выведет информацию, полученную с помощью утилит vmstat и netstat. При попытке ввода любой другой команды будет выведено соответствующее уведомление «Unknown command» (Команда не найдена). Таким образом, администратор получит статистику использования ресурсов сервера за последние 10 секунд, а также сможет просмотреть список установленных и ждущих TCP-соединений. Выход осуществляется при помощи quit.

ftplib

Для реализации простого FTP-клиента в Python используется модуль ftplib. С его помощью можно просмотреть список файлов в заданном каталоге на ftp-сервере, скачать нужные файлы по заданному шаблону или, наоборот, закачать их на сервер – таким образом, модуль способен выполнять все основные функции, присущие FTP-клиентам. Конечно, чтобы не "изобретать велосипед", можно просто воспользоваться одним из множества уже написанных под Linux программ, например, NcFTP. Однако если задачи системного администратора более специфичны или выходят за пределы простых команд get/put, ftplib в сочетании с другими модулями Python может стать альтернативным решением проблемы. Приведенный ниже скрипт соединяется с сервером ftp и выводит список файлов из указанного каталога в соответствии с заданной маской поиска (в данном примере это все файлы с расширением *.php). После этого найденные файлы скачиваются в локальный каталог пользователя, и соединение закрывается.

Database API 2.0

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

Для обработки запросов базы данных, согласно спецификации, используются объекты подключения и объекты курсоров. В частности, доступ к базе реализуется при помощи метода connect(), к которому применяются соответствующие параметры базы:

При разработке интерфейса для работы с выбранной базой данных следует учитывать особенности ее параметров и корректировать метод connect() в соответствии с ними. В целом базовая структура интерфейса, написанная на Python, достаточно проста для понимания и реализации. Следующим шагом после подключения к базе является объявление объекта курсора (в терминологии БД курсором называется тот ее объект, который позволяет управлять контекстом выборки):

Несмотря на то что некоторые БД, например MySQL, не поддерживают курсоры, они все равно будут эмулироваться, поэтому объявление объекта курсора в любом случае необходимо. После этого можно переходить к выполнению запроса:

Для получения результата запроса используется одна из следующих команд:

По окончании работы с базой необходимо завершить работу с курсором и закрыть соединение при помощи метода close():

Одной из основных задач системного администратора является организация резервного копирования базы данных. В сети существует достаточно много ресурсов, где выложены подробные how-to, описывающие готовые backup-скрипты на Python. В частности, сама процедура создания дампа может выглядеть, например, следующим образом:

iPython

iPython представляет собой альтернативную интерактивную оболочку для работы с Python, поддерживающую расширенный список команд, включая более шестидесяти специальных, или "магических", функций (%function_name). Она является хорошим подспорьем для системного администратора, позволяя сочетать возможности bash и Python, среди которых выделяются следующие:

  • функция автодополнения по Tab
  • возможность создания псевдонимов для часто используемых системных команд при помощи функции %alias
  • запуск скрипта в интерактивном режиме при помощи функции %run
  • возможность кэширования трех последних результатов вывода при помощи соответствующих переменных _, __ и ___
  • просмотр истории всех вводимых данных с использованием функции %hist
  • префикс ! для запуска shell-команд
  • и др.

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

Заключение

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

Комментировать
354 просмотров
Комментариев нет, будьте первым кто его оставит

Это интересно
Adblock
detector