Перейти к содержанию
На чтение 2 мин Просмотров 5к. Опубликовано
Содержание
- Введение
- Проверяем, установлен ли Python в Windows
- 1 способ
- 2 способ
- Заключение
Введение
В статье рассмотрим способы определить, установлен ли язык программирования Python на Операционной Системе Windows.
Проверяем, установлен ли Python в Windows
1 способ
Вне зависимости от того, выбирали ли Вы при установке путь, по которому будет установлен Python, определить его достаточно просто. Для этого можно открыть меню «Пуск» и ввести «python». Если же он есть на Вашем компьютере, то Windows найдёт его и покажет в списке.
2 способ
Проверить присутствие Python в Windows также можно при помощи командной строки/PowerShell. Для этого можно нажать комбинацию клавиш win + R и в появившемся окне вписать «cmd».
После нажатия на «ОК»появится командная строка.
В ней нужно прописать python —version. Если Python присутствует в Вашей системе, то выведется его версия, если нет — то нет.
Заключение
В ходе статьи мы с Вами научились определять, установлен ли язык программирования Python в Windows, а также узнавать его версию. Надеюсь Вам понравилась статья, желаю удачи и успехов! 🙂
Все курсы > Программирование на Питоне > Занятие 13
Сегодня мы сделаем шаг назад и посмотрим в целом, что такое программа на Питоне.
Способ 1. Писать код в облаке в Google Colab.
Способ 2. Написать программу в отдельном файле (скрипте) с расширением .py и передать этот код специальному интерпретатору для исполнения.
Способ 3. Установить Jupyter Notebook (локальный аналог Google Colab).
С первым способом мы уже познакомились в рамках вводного курса. Сегодня мы займемся написанием программы в отдельном файле, а в следующий раз — изучим Jupyter Notebook.
Кроме того, мы рассмотрим возможности по созданию собственных модулей и пакетов в Питоне.
Установка Питона на Windows
Прежде чем мы начнем писать программу, нам нужно установить библиотеки (libraries) и интерпретатор (interpreter) для обработки кода.
Шаг 1. Проверить, установлен ли Питон на вашем компьютере
Для этого вначале нажмите клавишу Windows и клавишу R на клавиатуре.
В появившемся окне «Выполнить» введите
cmd и нажмите Enter.
Появится так называемая «командная строка» (Command Line Promt) — отдельная программа, позволяющая взаимодействовать с Windows не графически (как мы привыкли делать), а через текстовые команды.
Теперь введите
python —version. Если Питон установлен, то программа сообщит текущую версию. В противном случае появится вот такая запись.
Если Питон не установлен, переходите к шагу 2. В случае если вы его уже установили, переходите сразу к шагу 3.
Шаг 2. Скачать Питон с официального сайта
Перейдем на сайт www.python.org/dowloads/⧉ и скачаем, среди прочего, базовый функционал Питона, а также интерпретатор для Windows, который позволит нам исполнять написанный нами код.
После скачивания и запуска файла откроется мастер установки.
Нижняя галочка добавит Питон в переменную окружения PATH. Благодаря этому мы сможем исполнять код на Питоне напрямую из командной строки. Мы разберем как это делается уже на следующем шаге.
Снова проверим установку Питона на компьютере, повторив действия Шага 1. В командной строке должна появиться установленная на данный момент версия Питона.
Шаг 3. Запустить Питон из командной строки
Теперь давайте введем в командной строке команду
py. Должны появиться символы
>>>.
Это значит, что командная строка перешла в интерактивный режим, и мы можем писать код на Питоне.
Напишем классическую фразу:
При корректном исполнении кода фраза будет выведена на экран.
Однако, как вы помните, наша задача — исполнить не отдельную команду, а скрипт, то есть целую программу на Питоне, а для этого нам нужно эту программу создать.
Поэтому выйдем из интерактивного режима с помощью команды
quit() или
exit(), закроем окно командной строки и перейдем к созданию программы на Питоне.
Создание программы на Питоне
Технически для создания программы нам понадобится редактор кода. В нем мы будем создавать файлы с расширением .py и передавать их интерпретатору.
Шаг 1. Скачать редактор кода
Редактор кода — это текстовый редактор, который, среди прочего, правильно подсвечивает код на том языке, на котором вы программируете.
В принципе, если вы работаете на Windows, то можете воспользоваться и «Блокнотом» (Notepad), который уже установлен в этой операционной системе (MS Word использовать не стоит). Достаточно написать в нем код, сохранить файл и изменить расширение с .txt на .py.
Если вы не видите расширения файлов, в «Проводнике» нажмите на вкладку «Вид» и поставьте галочку напротив «Расширения имен файлов».
При этом гораздо удобнее писать код в специально предназначенных для этого редакторах. Приведу ссылки на несколько популярных программ.
- Notepad++⧉
- Sublime⧉
- Atom⧉
На сегодняшнем занятии мы будем использовать Atom.
Редактор Atom
После установки и запуска редактора Atom закройте ненужные вкладки и нажмите File → New File.
Затем, чтобы сообщить редактору, что мы хотим писать код на Питоне, сохраним этот файл с расширением .py. Для этого нажмем File → Save As и сохраним файл, например, под именем script.py на Рабочий стол.
Благодаря расширению .py Atom будет знать, что в файле script.py мы собираемся писать код на Питоне.
Шаг 2. Написать программу на Питоне
Первой программой будет алгоритм линейного поиска (linear search algorithm). Этот алгоритм проверяет наличие числа в массиве путем простого перебора всех значений от первого до последнего.
Напишем такую программу в редакторе Atom и сохраним файл script.py.
# возьмем массив, arr = [3, 7, 0, 2, 5] # в котором нам нужно найти число 2 x = 2 # в цикле пройдемся по индексу массива for i in range(len(arr)): # если искомое число находится на этом индексе if (arr[i] == x): # выведем индекс print(i) |
Если у вас не получилось создать файл в редакторе Atom, вы можете его скачать.
В результате исполнения этого кода компьютер должен выдать цифру три, потому что искомое число два находится именно под этим индексом. Посмотрим, так ли это.
Шаг 3. Запустить программу из командной строки
Запустим этот код с помощью командной строки.
- Откроем командную строку через клавиши Window + R →
cmd. Перейдем на Рабочий стол (напомню, файл script.py мы сохранили именно туда) с помощью команды
cd Desktop.
Команда cd (change directory) позволяет перейти в другую папку, а Desktop — это Рабочий стол, то есть название той папки, куда мы хотим перейти. В результате командная строка должна выглядеть вот так:
- Теперь просто введите script.py. Так мы вызовем интерпретатор и исполним код.
Все, наша первая программа на Питоне готова.
Установка библиотек
Как уже было сказано, по умолчанию, с сайта www.python.org устанавливается лишь базовый функционал. Если мы хотим использовать, например, библиотеку Numpy или библиотеку Matplotlib нам нужно установить их отдельно. В этом нам поможет программа pip.
Программа pip
pip — это программа, которая помогает устанавливать (обновлять и удалять) дополнительные библиотеки на вашем компьютере. По сути эта программа связывается с репозиторием (хранилищем) пакетов/библиотек Python Package Index или PyPI (pypi.org⧉) и скачивает запрашиваемые файлы.
Все действия осуществляются из командной строки.
Если вы устанавливали Питон в соответствии с приведенной выше инструкцией, то pip уже присутствует на вашем компьютере. Проверить это можно с помощью команды
pip —version.
Кроме того, мы можем посмотреть на список всех установленных на компьютере библиотек через команду
pip list.
Установка библиотеки Numpy через pip install
Установим библиотеку Numpy. Для этого введем в командной строке
pip install numpy.
Проверить установку отдельного пакета можно с помощью команды
pip show numpy.
Использование установленной библиотеки
Теперь мы можем использовать установленную библиотеку Numpy внутри командной строки. Вначале перейдем в интерактивный режим с помощью команды py. После этого построчно (каждый раз нажимая Enter) введем следующие команды:
import numpy as np arr=np.array([1, 2, 3]) type(arr) |
Как мы видим, в результате исполнения этого кода Питон успешно создал массив Numpy.
Обновление и удаление библиотек
Создатели библиотек периодически вносят в них обновления, и эти обновления полезно скачивать на свой компьютер. Воспользуйтесь следующей командой:
pip install —upgrade numpy.
Для удаления пакета введите команду
pip uninstall numpy.
В процессе удаления будет нужно нажать Y + Enter для подтверждения операции. Другие библиотеки устанавливаются, обновляются и удаляются точно так же.
Модуль в Питоне
Помимо использования Питона в интерактивном режиме и запуска кода из файла мы можем создавать собственные модули.
Модуль в Питоне — это программа на Питоне (файл с расширением .py), которую мы можем использовать в других программах с помощью команды import.
Создание собственного модуля может быть полезно, если вы написали код, который затем будете много раз использовать в других программах.
Создание собственного модуля
Наш первый модуль на Питоне будет состоять из двух алгоритмов поиска: линейного и бинарного.
Алгоритм линейного поиска
Алгоритм линейного поиска у нас уже готов. Достаточно «обернуть» его в функцию.
# объявим функцию linear() def linear(arr, x): for i in range(len(arr)): if arr[i] == x: return i |
Теперь перейдем к бинарному поиску.
Алгоритм бинарного поиска
Вначале поговорим о том, что такое бинарный поиск. Представьте, что у вас есть телефонная книга, и вам нужно найти номер телефона определенного человека.
Если фамилия этого человека начинается с буквы А, то мы довольно быстро найдем его номер, используя уже известный нам алгоритм линейного поиска. А если он Яковлев? Линейному поиску придется перебрать все буквы от А до Я.
Бинарный же поиск действует иначе. Вначале мы открываем книгу посередине, скажем, на букве П.
После этого мы посмотрим, находится ли буква Я в первой или во второй половине книги. Так как Я очевидно находится во второй половине справочника, мы разобьем пополам вторую половину. И снова посмотрим справа искомая буква или слева.
Так мы будем действовать до тех пор, пока не найдем нужную нам букву.
Важно, что в случае бинарного поиска элементы всегда упорядочены.
Напишем код такого алгоритма на Питоне, только поиск будем выполнять не по буквам, а по числам.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
# создадим класс BinarySearch class BinarySearch: # метод __init__() пропишем, но оставим пустым def __init__(self): pass # метод .srt() будет сортировать список чисел def srt(self, arr): # для этого мы используем функцию sorted() arr = sorted(arr) return arr # сам бинарный поиск будет выполняться через метод .check() def check(self, arr, x): # вначале зададим индексы первого и последнего значений # отсортированного списка low, high = 0, len(arr)—1 # цикл while будет длиться до тех пор, пока индекс последнего значения # больше или равен первому while low <= high: # найдем индекс среднего значения списка mid = low + (high — low) // 2 # если число с этим индексом равно искомому, if arr[mid] == x: # вернем этот индекс return mid # если меньше искомого (число «справа» от середины) elif arr[mid] < x: # новым нижним индексом будет «середина + 1» low = mid + 1 # если больше искомого (число «слева» от середины) else: # новым верхним индексом будет «середина — 1» high = mid — 1 # если число так и не найдено, вернем -1 mid = —1 return mid |
Хотя это уводит нас в сторону от темы сегодняшнего занятия, поясню код нахождения индекса среднего значения списка.
mid = low + (high — low) // 2 |
На первый взгляд индекс среднего значения можно найти вот так
Однако первый вариант расчета индекса среднего значения позволяет избежать переполнения памяти (overflow) при использовании слишком больших значений.
Также замечу, что мы используем оператор целочисленного деления
//, потому что в Питоне результатом обычного деления является число с плавающей точкой (float). Индекс же таким числом быть не может.
Полностью код для обоих алгоритмов будет выглядеть следующим образом.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
def linear(arr, x): for i in range(len(arr)): if arr[i] == x: return i class BinarySearch: def __init__(self): pass def srt(self, arr): arr = sorted(arr) return arr def check(self, arr, x): low, high = 0, len(arr)—1 while low <= high: mid = low + (high — low) // 2 if arr[mid] == x: return mid elif arr[mid] < x: low = mid + 1 else: high = mid — 1 mid = —1 return mid |
Документирование кода с помощью docstrings
До сих пор мы писали комментарии, которые помогали нам разобраться в том, как работает та или иная часть кода. При этом, такие комментарии при исполнении кода полностью пропадают.
Одновременно в Питоне существуют так называемые строки документации (docstrings). Они используются для описания работы функции, метода, класса или модуля. Доступ к ним можно получить через атрибут __doc__ или функцию help().
В чем основные особенности создания docstrings?
- Docstrings заключаются в тройные одинарные или двойные кавычки
- Их следует располагать сразу после объявления функции, метода, класса или модуля
Добавим соответствующие docstrings в только что созданный нами модуль и параллельно разберем основные принципы написания документации. Начнем с модуля в целом.
Строки документации для модуля в Питоне
Документация модуля описывает модуль и перечисляет все доступные функции и классы. Например, для модуля mymodule документация могла бы выглядеть следующим образом.
«»» Модуль для поиска элементов в массиве чисел. ============================================ Classes ——- BinarySearch Functions ——— linear «»» |
Строки документации для функции описывают саму функцию, параметры и возвращаемое значение. Напишем документацию к функции linear().
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
def linear(arr, x): «»»Выполняет линейный поиск по массиву чисел. Parameters ———- arr : {list, ndarray} Массив чисел, по которому выполняется поиск. x : int Искомое число. Returns ——- i : int Индекс искомого числа, если оно присутствует в массиве. «»» for i in range(len(arr)): if arr[i] == x: return i |
Строк документации для класса описывают сам класс, а также перечисляют доступные атрибуты и методы. Каждый метод внутри класса сопровождается отдельной документацией.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 |
class BinarySearch: «»»Бинарный поиск по массиву чисел. «»» def __init__(self): pass def srt(self, arr): «»»Сортирует массив чисел в возрастающем порядке. Parameters ———- arr : {list, ndarray} Массив для сортировки. Returns ——- arr : {list, ndarray} Массив, отсортированный в возрастающем порядке. «»» arr = sorted(arr) return arr def check(self, arr, x): «»»Проверяет наличие числа в массиве c помощью алгоритма бинарного поиска. Parameters ———- arr : {list, numpy array} Массив чисел, по которому выполняется поиск. x : int Искомое число. Returns ——- mid : int Индекс числа в отсортированном по возрастанию массиве чисел. Возвращает -1, если число не найдено. «»» low, high = 0, len(arr)—1 while low <= high: mid = low + (high — low) // 2 if arr[mid] == x: return mid elif arr[mid] < x: low = mid + 1 else: high = mid — 1 mid = —1 return mid |
Полностью снабженный документацией модуль выглядит следующим образом.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 |
«»» Модуль для поиска элементов в массиве чисел. ============================================ Classes ——- BinarySearch Functions ——— linear «»» def linear(arr, x): «»»Выполняет линейный поиск по массиву чисел. Parameters ———- arr : {list, ndarray} Массив чисел, по которому выполняется поиск. x : int Искомое число. Returns ——- i : int Индекс искомого числа, если оно присутствует в массиве. «»» for i in range(len(arr)): if arr[i] == x: return i class BinarySearch: «»»Бинарный поиск по массиву чисел. «»» def __init__(self): pass def srt(self, arr): «»»Сортирует массив чисел в возрастающем порядке. Parameters ———- arr : {list, ndarray} Массив для сортировки. Returns ——- arr : {list, ndarray} Массив, отсортированный в возрастающем порядке. «»» arr = sorted(arr) return arr def check(self, arr, x): «»»Проверяет наличие числа в массиве c помощью алгоритма бинарного поиска. Parameters ———- arr : {list, numpy array} Массив чисел, по которому выполняется поиск. x : int Искомое число. Returns ——- mid : int Индекс числа в отсортированном по возрастанию массиве чисел. Возвращает -1, если число не найдено. «»» low, high = 0, len(arr)—1 while low <= high: mid = low + (high — low) // 2 if arr[mid] == x: return mid elif arr[mid] < x: low = mid + 1 else: high = mid — 1 mid = —1 return mid |
Замечу, что в данном случае мы использовали стиль документирования Numpy (NumPy documentation style). Он используется во многих известных пакетах: NumPy, SciPy, Pandas или, например, Scikit-Learn. При этом существуют и другие стили документирования.
Сохраним этот файл под именем mymodule.py. Все, наш модуль готов. Если у вас не получилось создать этот файл, вы можете скачать его по ссылке ниже.
Создание документации с помощью Pyment
Дополнительно замечу, что шаблон или «каркас» документации можно создать с помощью специального пакета Pyment. Для этого:
- Скачайте пакет Pyment через
pip install pyment - Убедитесь, что командная строка указывает на ту папку, в которой находится ваш модуль mymodule.py (например, на Рабочий стол)
- Введите команду
pyment -w -o numpydoc mymodule.py. В данном случае вы буквально просите pyment создать документацию в стиле Numpy в файле под названием mymodule.py - Откройте файл в редакторе кода и начинайте заполнять шаблон.
Загрузка и импорт модуля в Google Colab
Откроем ноутбук к этому занятию⧉
Давайте подгрузим файл mymodule.py в сессионное хранилище Google Colab.
Теперь мы можем работать с этим модулем так, как мы работали с функциями модуля random или классами библиотеки sklearn.
Вначале импортируем функцию linear() из модуля mymodule.
from mymodule import linear |
Создадим список, по которому будет выполняться поиск, а также искомое число.
arr = [3, 7, 0, 2, 5] target = 2 |
Вызовем функцию linear() и передадим ей список и целевое значение в качестве аргументов.
Теперь возьмем список большего размера и другое целевое значение.
arr = [9, 3, 343, 5, 8, 1, 20111, 32, 11, 6, 4] target = 9 |
Импортируем модуль mymodule под псевдонимом mm.
Воспользуемся бинарным поиском. Для этого вначале создадим объект класса BinarySearch и поместим его в переменную src.
Прежде чем выполнить поиск нам необходимо отсортировать список чисел. Вызовем метод .srt() класса BinarySearch.
# передадим методу .srt() список arr для сортировки sorted_arr = srch.srt(arr) # посмотрим на результат sorted_arr |
[1, 3, 4, 5, 6, 8, 9, 11, 32, 343, 20111] |
Теперь воспользуемся методом .check(), чтобы проверить, присутствует ли в списке число девять.
# напомню, что индекс числа 9 мы будем отсчитывать с нуля src.check(sorted_arr, target) |
В отсортированном списке это число присутствует под индексом шесть.
Просмотр документации модуля
Вначале выведем документацию модуля в целом.
Модуль для поиска элементов в массиве чисел. ============================================ Classes ——- BinarySearch Functions ——— linear |
Посмотрим на функию linear().
Выполняет линейный поиск по массиву чисел. Parameters ———- arr : {list, ndarray} Массив чисел, по которому выполняется поиск. x : int Искомое число. Returns ——- i : int Индекс искомого числа, если оно присутствует в массиве. |
И класс BinarySearch.
print(mm.BinarySearch.__doc__) |
Бинарный поиск по массиву чисел. |
Мы также можем посмотреть документацию отдельного метода внутри класса.
print(mm.BinarySearch.srt.__doc__) |
Сортирует массив чисел в возрастающем порядке. Parameters ————— arr : {list, ndarray} Массив для сортировки. Returns ———— arr : {list, ndarray} Массив, отсортированный в возрастающем порядке. |
Напомню, что документацию можно также посмотреть с помощью функции help().
Импорт собственного модуля в командной строке
Модуль в Питоне не обязательно подгружать в Google Colab, его также можно импортировать локально в командной строке.
Когда в интерактивном режиме мы пытаемся импортировать модуль с помощью команды import, Питон начинает искать этот модуль в конкретных папках. Посмотреть, что это за папки можно с помощью встроенного в базовый функционал модуля sys. В интерактивном режиме (команда
py) последовательно введите следующие команды.
Обратите внимание, что первой в списке
[»] указана текущая папка.
Если ваш модуль не находится в одной из этих папок, импортировать его не получится. Здесь есть два варианта: либо переместить файл в одну из указанных папок, либо добавить новую папку в переменную path.
Способ 1. Переместить файл в папку из списка
Текущая папка будет иметь адрес, похожий на
C:\Users\user (замените user на имя вашей учетной записи). Введите этот адрес в Проводнике.
Переместите туда наш модуль mymodule.py. Теперь войдем в интерактивный режим (команда
py) и импортируем модуль с помощью команды
import. После этого создадим массив, целевую переменную и вызовем функцию linear().
import mymodule arr = [3, 7, 0, 2, 5] target = 2 mymodule.linear(arr, target) |
Как вы видите, мы смогли успешно импортировать наш модуль и использовать необходимую функцию.
Способ 2. Добавить новый путь (папку) в переменную path
Добавим Рабочий стол в список sys.path. Для этого прекрасно подойдет метод .append(), который мы использовали для обычных питоновских списков.
Например, добавим Desktop (Рабочий стол).
Не забудьте заменить user на имя пользователя на вашем компьютере, а также обратите внимание на двойные обратные косые черты
\\ в абсолютном пути к папке Desktop.
Мы готовы импортировать наш модуль с Рабочего стола. Вернем файл mymodule.py на Рабочий стол, войдем в интерактивный режим (команда
py и последовательно введем код ниже.
import mymodule arr = [3, 7, 0, 2, 5] target = 2 mymodule.linear(arr, target) |
Нам снова удалось импортировать необходимую нам функцию linear().
Интерпретация и компиляция
Небольшое отступление от темы занятия. В самом начале мы сказали, что вместе с базовым функционалом Питона мы импортируем еще и интерпретатор. Давайте, разберемся, что это такое.
Как вы помните, компьютер понимает только нули и единицы, но никак не код на Питоне. Перевести понятный человеку язык программирования на машинный можно двумя способами: через компилятор (compiler) и через интерпретатор (interpreter).
Проведем следующую аналогию. Предположим, что у нас есть текст, скажем, на французском языке, и нам нужно понять, что в нем написано.
Компилятор
Первый вариант, отдать текст в бюро переводов. Там выполнят перевод всего документа и вернут текст на русском языке. Если в исходный текст внесут изменения, нам придется вновь заказывать его перевод. Можно сказать, что бюро переводов — это компилятор.
Компилятор берет файл с понятным человеку исходным кодом, переводит его в нули и единицы и сохраняет получившийся машинный код в исполняемом (executable) файле (на Windows — это файл с расширением .exe).
После этого мы можем запустить файл .exe и увидеть результат работы программы.
Интерпретатор
Интерпетатор действует иначе. Возвращаясь к аналогии с текстом на французском языке, вместо того чтобы отправлять документ в бюро переводов, мы просим человека, говорящего на этом языке на ходу, с листа передавать нам содержание текста.
Другими словами, интерпретатор — это программа, которая позволяет обрабатывать код и сразу выдавать результат.
Как следствие, языки делятся на компилируемые и интерпретируемые. Питон относится к интерпретируемым языкам, а, например, С — к компилируемым.
Впрочем, программа на Питоне может быть скомпилирована, например, с помощью пакета PyInstaller.
Кроме того, возможно вы обратили внимание, что когда мы вызывали модуль mymodule в командной строке, то Питон автоматически создал папку под названием __pycache__.pyc. В ней содержится скомпилированный байт-код программы (промежуточный код между Питоном и машинным языком), который ускоряет последующий запуск нашего модуля.
Пакет в Питоне
Поговорим про пакеты. Предположим, что вы создали довольно много полезных функций и классов и хранить их в одном модуле не слишком удобно. Самое время задуматься над созданием собственного пакета (package).
Примечание. Некоторые пакеты (например, Numpy или Pandas) принято называть библиотеками. При этом с технической точки зрения пакет и библиотека — это одно и то же.
Создание собственного пакета
В качестве упражнения создадим несложный пакет на Питоне и поместим его в тестовый репозиторий TestPyPI. Это своего рода «песочница», в которой можно научиться создавать пакеты перед их загрузкой в «большой» репозиторий PyPI.
Обратите внимание, PyPI и TestPyPI — это разные сайты, для которых требуются разные учетные записи.
Добавлю, что по большей части этот раздел создан на основе примера, приведенного в документации Питона⧉.
Шаг 1. Создание учетной записи
В первую очередь зарегистрируйтесь на сайте https://test.pypi.org/⧉.
Шаг 2. Создание файлов
Теперь создайте пакет example_package (по сути, набор папок и файлов) со следующей структурой.
base/ └── src/ └── example_package/ ├── __init__.py └── example_module.py |
В пакет мы поместим модуль example_module.py. В модуле объявим функцию для возведения числа в квадрат square().
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
«»» Модуль для выполнения арифметических операций. ============================================ Functions ——— square «»» def square(number): «»»Возводит число в квадрат. Parameters ———- number : int Возводимое во вторую степень число. Returns ——- int Квадрат числа. «»» return number ** 2 |
Также создадим пустой файл __init__.py. Он необходим для того, чтобы папка распознавалась именно как питоновский пакет.
Все последующие инструкции в командной строке будут выполняться из папки base/.
Например, если папка base/ находится на Рабочем столе, то перейти в нее можно с помощью команды
cd Desktop\base.
Дополнительные файлы
Теперь давайте немного усложним структуру и добавим новые файлы.
base/ ├── LICENSE.txt ├── pyproject.toml ├── README.md ├── setup.py └── src/ └── example_package/ ├── __init__.py └── example_module.py |
- В файл pyproject.toml поместим следующий код:
[build-system] requires = [«setuptools>=42»] build-backend = «setuptools.build_meta» |
build-system.requires указывает на пакеты, необходимые для создания дистрибутива (то есть готового к распротранению пакета),
build-system.build-backend прописывает, какой объект будет использован для его создания.
- В setuptools.py содержится информация о пакете. Там же прописывается, какие файлы следует использовать при создании дистрибутива.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
import setuptools with open(«README.md», «r», encoding=«utf-8») as fh: long_description = fh.read() setuptools.setup( name=«example-package-DmitryMakarov», version=«0.0.1», author=«Dmitry Makarov», author_email=«dm.v.makarov@gmail.com», description=«Simple arithmetic package», long_description=long_description, long_description_content_type=«text/markdown», url=«https://github.com», project_urls={ «Bug Tracker»: «https://github.com», }, classifiers=[ «Programming Language :: Python :: 3», «License :: OSI Approved :: MIT License», «Operating System :: OS Independent», ], package_dir={«»: «src»}, packages=setuptools.find_packages(where=«src»), python_requires=«>=3.6», ) |
Вначале мы импортируем пакет setuptools. После этого открываем файл README.md и помещаем его содержимое в переменную longdescription.
Затем вызываем функцию setuptools.setup() и передаем ей целый ряд параметров. При создании собственного пакета замените значения следующих параметров:
- Название пакета (name). Оно должно быть уникальным. Для того чтобы обеспечить уникальность названия, проще всего добавить к нему свой логин на сайте https://test.pypi.org/ в формате «название-пакета-логин».
- Также вы можете заменить поля author и author_email.
Менять остальные поля, в принципе, не обязательно.
- Файл README.md
В файле README.md содержатся описание пакета, примеры и технические детали проекта. Расширение .md указывает на то, что этот файл сохранен в формате markdown и поддерживает форматирование текста.
В документации на сайте www.markdownguide.org⧉ вы найдете рекомендации по использованию языка markdown.
В нашем файле мы напишем следующий текст.
# Тестовый пакет Файл README.md может содержать описание, примеры и технические детали пакета. Формат .md (markdown) поддерживает форматирование текста. Например, **полужирный шрифт** или *курсив*. Более полный перечень можно найти по [ссылке](https://guides.github.com/features/mastering-markdown/) |
- Файл LICENSE.txt
Остается создать файл с лицензией LICENSE.txt. Мы будем использовать лицензию открытого и свободного программного обеспечения MIT (Массачусетского технологического института).
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
MIT License Copyright (c) 2022 Dmitry Makarov Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the «Software»), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED «AS IS», WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. |
Шаг 3. Создание дистрибутива
Скачаем инструменты, необходимые для создания дистрибутива.
Теперь из папки base/ введите команду
py -m build. После ее выполнения должно появиться уведомление об успешном создании дистрибутива пакета.
Сам дистрибутив появится в папке base/.
Шаг 4. Подгрузка дистрибутива
Скачаем инструмент для подгрузки twine.
И выполним подгрузку посредством следующей команды
py -m twine upload —repository testpypi dist/* |
Пароль при вводе отображаться не будет (ни в явном, ни в скрытом виде). Просто введите нужные символы и нажмите Enter.
Должен появиться вот такой результат.
Как вы видите, подгруженный пакет доступен по адресу: https://test.pypi.org/project/example-package-DmitryMakarov/0.0.1/⧉. Мы создали свой первый пакет.
Установка и использование пакета
Если вы захотите воспользоваться этим пакетом, то в командной строке введите команду, которая представлена на первой странице пакета.
pip install -i https://test.pypi.org/simple/ example-package-DmitryMakarov==0.0.1 |
Результат исполнения этой команды вы видите ниже.
Теперь мы можем пользоваться нашим пакетом. В интерактивном режиме (команду py) импортируем модуль example_module из пакета example_package и вызовем функцию square(), передав ей, например, число два.
from example_package import example_module example_module.square(2) |
В целом создание «взрослого» пакета на PyPI следует похожей схеме.
Подведем итог
Сегодня мы расширили наше представление о том, как запускать код на Питоне. Если раньше мы использовали только Google Colab, то теперь можем создавать собственные программы, модули и пакеты.
Вопросы для закрепления
Вопрос. Чем программа (скрипт) отличается от модуля?
Посмотреть правильный ответ
Ответ: технически и то, и другое — файл с расширением .py, при этом скрипт не предполагает его использования в других программах, а модуль предназначен именно для этого.
Вопрос. Зачем добавлять Питон в переменнаую окружения PATH в ОС Windows?
Посмотреть правильный ответ
Ответ: мы добавляем Питон в переменную PATH ОС Windows, чтобы в командной строке мы могли исполнять Питон в интерактивном режиме.
Вопрос. Что такое переменная path модуля sys в Питоне?
Посмотреть правильный ответ
Ответ: в переменной path модуля sys указаны те папки компьютера, в которых интерпретатор Питона будет искать файл для его импорта. Эта переменная отличается от переменной PATH в операционной системе.
Ответы на вопросы
Вопрос. Что такое
if __name__ == ‘__main__’:?
Ответ. Перед тем как исполнить код (например, в командной строке), интерпретатор Питона объявляет несколько переменных. Одна из них называется
__name__. Этой переменной присваивается значение __main__. Создадим файл script.py со следующим кодом и запустим его в командной строке.
Теперь создадим еще один файл и назовем его module.py. Если вызвать его напрямую, то разумеется переменная
__name__ также будет иметь значение __main__.
При этом если импортировать файл module.py внутри script.py, то значение переменной
__name__ файла module.py изменится на его название (то есть слово module). Создадим файл module.py со следующим кодом.
Заменим код в файле script.py и исполним его.
import module print(__name__) |
Вероятно, чтобы лучше понять как работает приведенный в ответе код, имеет смысл самостоятельно прописать и исполнить каждый из примеров.
Как мы получили такой результат? Сначала был импортирован код из файла module.py, внутри которого переменной
__name__ было присвоено значение module. Именно это значение мы видим на первой строке вывода. Затем было выведено значение переменной
__name__ файла script.py (то есть __main__).
Теперь давайте изменим код файла module.py.
if __name__ == ‘__main__’: print(‘This runs as the main file’) else: print(‘This runs as an imported file’) |
(1) Запустим его как основной файл напрямую из командной строки.
(2) Теперь импортируем его в script.py (код файла module.py оставим без изменений).
Как вы видите, в импортированном файле module.py переменная
__name__ не содержит значения __main__, поэтому исполнилось выражение после else. В script.py переменная
__name__ по-прежнему имеет значение __main__.
Зачем может быть нужно такое условие? Если вы пишете код, который в первую очередь предназначен для импорта (то есть модуль), будет разумно не вызывать содержащиеся в нем функции автоматически. В этом случае вызов функций можно заключить в обсуждаемое условие.
Изменим файл module.py.
def foo(): print(‘This is an imported function’) if __name__ == ‘__main__’: foo() |
Теперь внутри script.py вначале просто импортируем файл module.py.
При вызове модуля ничего не произошло. Так и должно быть. Для того чтобы вызвать функцию foo() нам нужно обратиться к ней напрямую. Изменим файл script.py и исполним его.
import module module.foo() |
На следующем занятии, как мы и планировали, мы посмотрим, как можно исполнять код на Питоне в программе Jupyter Notebook.
На чтение 3 мин Просмотров 12.6к. Опубликовано
Подробная статья рассматривающая способы проверки установки Python в операционных системах Windows, Linux и MacOS.
Содержание
- Введение
- Как найти python в Microsoft Windows?
- Как найти python в Unix подобных ОС (Linux и MacOS)
- Заключение
Введение
Не редкий случай, когда начинающие программисты определились с выбором языка программирования и решили написать свою первую программу, чаще всего — hello world. Но где найти и как открыть python?
Подход для каждой операционной системы различается, приведу примеры для Windows и Linux.
Как найти python в Microsoft Windows?
Большинство программ в этой операционной системе устанавливаются в папку Program Files расположенную на вашем системном диске. Но искать среди кучи установленных программ не самый простой вариант. Можно открыть меню Пуск и воспользоваться поисковой строкой для обнаружения установленной версии Python.
В Windows 10 по умолчанию поисковая строка — отсутствует, но до тех пор, пока вы не начнете вводить текст. Введите — python и если в вашей системе он установлен windows найдет это приложение.
На моей тестовой системе установленные 2 версии python.
Как найти python в Unix подобных ОС (Linux и MacOS)
В большинстве дистрибутивов Unix python установлен по умолчанию. Более того, он поставляется в двух версия, python2.7 и python3.
Чтобы найти исполняемый файл python — запустите эмулятор терминала и введите в него команду which python
Результатом выполнения команды будет путь до исполняемого файла. Но как узнать какой версии python? Для этого необходимо выполнить еще одну команду в терминале — /usr/bin/python —version
Как видим, данный исполняемый файл версии 2.7.16.
Но наверняка вам нужна более актуальная и поддерживаемая версия Python 3. Её тоже не составит труда найти и достаточно выполнить команду which python3
Как видим — результат выполнения команды путь до исполняемого файла ( пути до исполняемых файлов могут отличаться из за разных структур файловой системы операционных систем).
Осталось проверить версию интерпретатора python3.
У нас установлена версия Python 3.8.0.
Так же большинство дистрибутивов создают символические ссылки на исполняемые файлы, для их быстрого запуска без указания полного пути к исполняемому файлу. Например запустить версию python2.7 можно командой python2.7, а версию 3 командой python3
Заключение
Теперь вы знаете как найти python на вашем компьютере вне зависимости от вашей операционной системы.
Егор Егоров
Программирую на Python с 2017 года. Люблю создавать контент, который помогает людям понять сложные вещи. Не представляю жизнь без непрерывного цикла обучения, спорта и чувства юмора.
Ссылка на мой github есть в шапке. Залетай.
Прежде, чем приступить к занятиям, нужно выполнить подготовительную работу, которая нужна, чтобы начать программировать на Python.
В частности, нужно установить интерпретатор Python в вашей операционной системе и проработать цикл написания, сохранения и запуска программы. В качестве программы для тренировки мы возьмем одну строчку кода – print(‘Hello, Python’)
Совет. Создайте специальную директорию, в которой будут находится файлы с кодом python. Файлы с кодом python имеют расширение .py. Постарайтесь называть файлы так, чтобы было понятно, что в них находится. Если через какое-то время вам нужно будет вернуться к примерам или задачам, это сильно поможет.
Установка интерпретатора Python
Установка и настройка редактора
Запуск Python
Установка интерпретатора Python
Внимание! Мы будем изучать Python3, поэтому устанавливать нужно Python3.
Шаг1. Проверить, установлен ли Python3
Прежде всего нужно проверить, установлен ли Python3 на Вашем компьютере. Для этого в командной строке наберите
На Mac:
>python3
Windows и другие:
>python
Подсказка:
1. Если вы не знаете, как попасть в командную строку –смотрите здесь.
2. В Windows в качестве альтернативы командной строке можно использовать PowerShell
Если Python установлен, то вы увидите что-то вроде этого
Вы увидите версию установленного Python. Если это версия 3.x– то ничего делать не нужно, можно сразу перейти к установке редактора.
Внимание! Клавиша ESC в командной строке не работает. Для выхода из интерпретатора Python в командной строке набираем quit() или exit(), обязательно со скобками. Либо просто СNTR+C на Windows, СNTR+D – на Маке.
Шаг 2. Установка Python3
В целом в установке Python нет ничего сложного, для этого посетите официальную станицу загрузки.
Python реализован для нескольких десятков операционных систем, выберите ту, которая установлена у вас.
Для Windows используйте эту инструкцию
Для MAC OS X – загрузка с официального сайта
Внимание! На Маке предустановлен python 2.x. Относящиеся к нему файлы и библиотеки находятся в /System/Library/Frameworks/Python.framework и /usr/bin/python. Их нельзя удалять или модифицировать, так как они используются в некоторых приложениях Apple. У вас будет две версии Python, и об этом нужно помнить.
Для Linux/Unix https://www.python.org/downloads/source/
Для остальных https://www.python.org/download/other/
Шаг 3. Проверить, что Python установлен и работает
После установки убедитесь, что Python установлен – в командной строке набираем
На Mac:
>python3
Windows и другие:
>python
Теперь точно вы должны увидеть что-то вроде этого
Это означает, что система готова и ожидает ваших команд.
В командной строке набираем
>>>print(‘Hello, Python’)
Внимание! В начале пробела быть не должно – иначе интерпретатор выдаст ошибку.
и нажимаем Enter. В ответ интерпретатор должен напечатать тот текст, который указан в кавычках, в данном случае это Hello, Python
Итак, только что вы написали свою первую программу на Python и сделали первый шаг к тому, чтобы стать программистом!
Заодно вы увидели, что такое интерактивный режим – в этом режиме пользователь сообщает системе, что нужно сделать, а система немедленно отвечает.
Не забываем выйти из интерпретатора Python. Для выхода из интерпретатора Python в командной строке набираем quit() или exit(), обязательно со скобками. Либо просто СNTR+C на Windows, СNTR+D – на Маке.
Установка и настройка редактора
Интерпретатор дает возможность привести написанный код в исполнение, а текстовый редактор позволяет нам писать код, выполняя знакомые нам задачи – такие как поиск, замена, вырезка, вставка текста.
У файлов с кодом Python должно быть расширение .py. Намример, mycode.py
Существует достаточно большое количество разнообразных редакторов и IDE (Integrated Development Environment), и со времен вы определитесь, что использовать.
Выбор редактора/IDE – дело индивидуальное, самое главное – чтобы в нем было удобно и комфортно работать вам.
Если у вас есть опыт программирования на других языках, и любимый редактор/IDE, который поддерживает синтаксис Python, то смело пропускайте эту часть, и пользуйтесь тем, что привычно и нравится.
Новичкам рекомендуем начать с “легких” редакторов. Лёгкие редакторы – быстрые, простые и мгновенно стартуют. На практике «лёгкие» редакторы могут обладать большим количеством плагинов, так что граница между IDE и «лёгким» редактором размыта.
Достойны внимания:
- Sublime Text (кросс-платформенный, shareware)
- Atom (кросс-платформенный, бесплатный)
- SciTe простой, легкий и очень быстрый (Windows, бесплатный)
- Notepad++ (Windows, бесплатный).
В настройке редактора для Python важны два момента – установить синтаксис Python и установить табуляцию, равную 4-м пробелам. Это очень важный момент для Python3, так как Python3 не доускает смешение табуляций и пробелов.
Если нужно, вы можете воспользоваться подсказками по настройке NotePad и Sublime.
- Sublime Text(все платформы) – базовая настройка для Python
- NotePad(толькоWindows) – базовая настройка для Python
После установки редактора создайте файл, содержащий одну строку:
print(‘Hello, Python’)
Никаких пробелов в начале быть не должно, строка начинается с первой позиции, иначе будет синтаксическая ошибка.
Сохраняем файл на диске (вы же организовали себе место для хранения python-файлов?). Файл можно назвать как угодно, главное, чтобы расширение было .py. Например, hello.py
Запуск Python
Ну что же, остается выполнить код, который находится в файле.
1. Запуск из IDLE
Самый простой и удобный способ для начинающих запускать Python – через IDLE (Integrated DeveLopment Environment), которая входит комплект поставки Python. Она может использоваться на многих платформах, среди которых есть и Windows, и Mac OS.
Запуск на Windows.
Способ 1. Выбираем нужный файл. Нажимаем правую кнопку мыши и видим
Выбрав Edit with IDLE, попадаем в IDLE:
Как видите, запустить программу при помощи F5. Здесь же можно что-то быстренько подправить, все изменения сохранятся. Если файл параллельно открыт в редакторе, то редактор вас предупредит о том, что в файле были сделаны изменения и предложит их сохранить.
Способ 2.
В панели Widndows находим Python, открываем выпадающее меню и выбираем Python IDLE:
В этом случае откроется терминал. Нужный файл для запуска выбираем через меню File>Open и запускаем файл, выбрав в меню Run>Run Module или нажав F5.
Запуск на MAC OS
Способ 1.
В Finder выбираем нужный файл и дважды кликаем по нему (аналог правого щелчка мыши на Windows). Откроется IDLE:
На Маке shell и редактор открываются в разных окнах. Код запускается из меню Run>Run Module или по нажатию Fn+F5.
Способ 2.
На Launcpad находим IDLE
В этом случае откроется терминал. Нужный файл для запуска выбираем через File>Open и запустить его, выбрав в меню Run>Run Module или нажав FN+F5.
При использовании способа 1 открывается редактор, а при использовании способа 2 – интерпретатор Python
2. Запуск из командной строки
- Открываем командную строку.
Внимание! Если вы незнакомы с работой с командной строки, то почитайте, как пользоваться командной строкой либо пользуйтесь IDLE(Способ 1).
- Переходим в директорию, где расположен файл, который нужно запустить.
- Запускаем файл
Windows:
>python ИМЯФАЙЛА.py
MAC OS:
>python3 ИМЯФАЙЛА.py
Как правило, программу Python можно запускать непосредственно из IDE. Как это сделать – зависит от интерфейса конкретной IDE, все они интуитивно понятны и выполнение кода не вызывает никаких сложностей.
Preparations: Desktop or laptop with Python installed
Total time: 5-10 mins
Difficulty: Intermediate
Task Yields: After you complete the task, you will be able to check your installed Python versions
Web developers, engineers, and other software professionals need to know how to check Python version installed on their machines. Although the process is simple, some beginners may find it hard to figure out how to check Python version.
If you’re new to Python, we suggest taking a Python course to become familiar with the syntax and subtleties of the language.
In this article, we’ll guide you through a few easy steps to check Python version on your Mac, Windows, or Linux machine. All you need to begin is a computer with a Python release installed.
Let’s jump right in.
What is Python?
Python is a programming language used in web development, machine learning, and automation tasks. It is object-oriented, interpreted, and has a clear, simple syntax that makes it easy to learn and use.
It is one of the most popular and widely used languages, rivaling Javascript, Java, and C.
Python’s core library is extensive and freely distributed. These libraries and packages extend Python’s standard functionality.
The #1 Reason You Need to Know How to Check Python Version
There are many different versions of Python, and each version operates slightly differently with other dependencies and packages you have installed. Therefore, it’s crucial to ensure you have the correct version of Python installed to support the other dependencies in your project.
It is possible to have more than one version of Python installed on your computer. If you are a serious developer, you might simultaneously work on several applications requiring different Python versions.
For this reason, developers often run Python inside a virtual environment. In addition, it’s common to run a separate virtual environment for each Python project you work on.
A virtual environment is like a virtual machine that runs on your computer and keeps all the Python interpreters, versions, packages, dependencies, and scripts isolated from other Python projects on your computer.
You Might Also Like: How to Run a Python Script (A Complete Guide)
Learn Python Online
Private Class
60min
Private Class
60min
Private Class
60min
Explore More >
Python is one of the most popular and widely used languages, rivaling Javascript, Java, and C.
How Do I Check if Python is Installed on Linux?
To check if you have Python installed on your Linux machine, open up a terminal and type the command python –version. See below for more information and detailed step-by-step instructions.
How Do I Check if My Python is Windows or Linux?
Typically, the type of machine dictates the Python release. For example, if your computer is a Windows computer, you have a Windows release of Python. You are running a Linux Python release if it is a Linux machine.
You can use Python to check what type of machine the current code is running on by running the platform command. Python exports this module as a global, so you can easily check what platform your Python code is running on by typing something like the following:
if platform.system() == “Linux”:
print(“Linux”)
elif platform.system() == “Windows”:
print(“Windows”)
else:
print(“Mac”)
You Might Also Like: Machine Learning: Why Python?
How Do I Know What Version of Python I Have on My Computer?
Depending on the computer you have, the way you check your Python version will differ slightly. In general, you can open either a terminal or command line prompt and type a command similar to python –version.
How to Check Python Version in 3 Easy Steps
-
Open a terminal, command prompt, or Power Shell
-
Type python –version
-
To check the Python3 version, type python3 –version
Open A Terminal, Command Prompt, or Power Shell
Depending on the machine you are using (Mac, Linux, Windows), you will open up a terminal, command prompt, or Power Shell.
Open Terminal (Mac)
The easiest way to open a Mac laptop or desktop computer terminal is to press command + spacebar. This will open up the search bar. Type “terminal” into the search bar and hit Enter. This will open up a terminal window.
Open Terminal (Linux)
The fastest way to open the terminal on Linux is to use the keyboard shortcut Ctrl + Alt + T. This will open a new terminal window.
Open Command Prompt or Power Shell (Windows)
To open the command line prompt on Windows, click on the Start Menu in the bottom left corner of the screen. Into the search bar that appears there, type “Command Prompt” and hit Enter. This will open a new Command Prompt Window.
Follow the same steps to open Power Shell.
Run the Python Version Command
The command to check the version of Python you are running is the same for all three machines: python –version. You can enter this into the Mac, Linux terminal, Windows Command Prompt, or Power Shell.
Type the command and hit Enter. A printout will appear on the next line telling you which version of Python you have installed.
Run Python3 to Check Python3 Version
The two most commonly found installations of Python are Python 2.7 and Python 3. These are not versions of Python, they are releases. Therefore, there are different versions of Python 2.7 and different versions of Python3.
If you type python –version into the terminal or command line and get back an error that says something like “Command not found: python” then you either don’t have Python installed or have Python3 installed. Type python3 –version instead to check the Python3 version.
You Might Also Like: Why Was Python Created? History of Python