Как подключить библиотеку в python: для своих и из другой папки

Содержание

для своих и из другой папки

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

Что такое модуль

Это отдельный файл, содержащий какой-то код. Любой скрипт, написанный программистом на Python 3, можно назвать модулем. Он может быть как исполняемым, так и подключаемым. Исполняемый модуль содержит код, который самостоятельно выполняет какие-то действия, а подключаемый представляет из себя набор функций, классов и объектов, которые можно использовать для решения задач в другой программе.

Разделение программ на модули даёт ряд преимуществ:

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

Исполняемый и подключаемый модуль

Можно написать такой скрипт, который будет и выполнять какие-то действия (программа), и импортироваться в другие модули (библиотека).

Его важно правильно оформить:

  1. Весь исполняемый код помещается в функцию main().
  2. Функция main() вызывается после условия:
    if __name__ == '__main__':
        main()

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

Подключение модуля

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

Модули в Python — это файлы с расширением «.py». При импорте расширение опускается, интерпретатор и так знает, что после команды import следует имя модуля.

Программист может без проблем подключить любой модуль, который есть в стандартной библиотеке Python 3. Для подключения специфичных пользовательских инструментов сначала нужно их скачать. Обычно для этого используется пакетный менеджер pip.

Обычное подключение — import

Подключать модули желательно в самом вверху скрипта, используя ключевое слово «import», например import random.

После подключения программа получает доступ ко всем функциям, методам и классам, содержащимся в нём.

Программист может вызвать любую функцию из подключенной библиотеки используя префикс «имя_модуля.«.  Пример: random.randint(1,15) где random — это библиотека, которую мы подключили, а randint — имя функции, которая в ней описана.

Этот способ не допускает пересечения имён, то есть программист может использовать одно и то же имя функции в скрипте, точно такое же, как и в подключаемой библиотеке и не бояться, что после её подключения, функция будет переопределена.

Вот полный пример использования инструкции import в Python 3:

import random
a = random.randint(1, 15)
print(a)

Использование псевдонимов — as

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

Например, если написать «import random as rand«, то вместо длинного random для обращения к функциям библиотеки можно будет использовать короткое rand.

Импорт компонентов — from

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

Например, программист хочет использовать только одну функцию из математической библиотеки math. Если он подключит всю библиотеку, то в скрипт добавится более 40 функций, которые будут занимать место. Чтобы добавить в проект какую-то часть, используют ключевое слово from:

from <имя подключаемого модуля> import <название функции>

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

Можно подключить несколько функций сразу в одной строке. Для этого их надо перечислить через запятую.

Если после import написать символ звёздочки «*», подключится все содержимое модуля. Это считается плохим тоном, потому что может привести к совпадению имён из основного скрипта с именами из подключаемого. Но если программист уверен, что использовал уникальные названия для функций и переменных, теоретически он может использовать этот способ.

Перезагрузка библиотеки

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

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

Пример:

import my_name, time
print(my_name. name) # Выведет Сергей
time.sleep(10) # пауза во время которой изменяем 
# значение name в файле my_name.py
# с Сергей на Александр
import my_name
print(my_name.name) # Выведет Сергей

Если всё же необходимо перезагрузить модуль, на помощью приходит функция reload() из стандартной библиотеки importlib. Перезагрузка не влияет на объекты, ссылающиеся на импортированный модуль, и позволяет реализовать динамическую перезагрузку компонентов программы.

Вот пример:

from importlib import reload
import my_name, time 
print(my_name.name) # Выведет Сергей
time.sleep(10)# меняем значение с Сергей на Александр 
my_name = reload(my_name)
print(my_name.name) # Выведет Александр

Подключение из другой папки

Библиотеки подключаются очень просто, когда интерпретатор Python знает, где их искать. Python ищет модули:

  • В папке исполняемого скрипта.
  • Во встроенных модулях (built-in).
  • В директориях, определённых в sys.path (также содержит переменную PYTHONPATH).

 

Чтобы импортировать модуль из другой папки в Python 3, можно сделать следующее:

Для того чтобы директория, содержащая файлы, определялась как пакет, в неё необходимо добавить файл __init__.py. Он показывает интерпретатору Python, что папка — это пакет с модулями.

Начиная с версии Python 3.3, добавлять файл __init__.py в директорию больше не нужно, интерпретатор Python считает все папки пакетами.

Не стоит путать понятия «пакет» и «модуль». Модуль — это отдельный файл, а пакет — это папка, в которой содержится несколько отдельных скриптов.

Как установить библиотеку в Python / Skillbox Media

#Руководства

  • 16

Знания расширяют сознание, а библиотеки — возможности языков программирования. Расскажем, как подключить их в Python.

Vkontakte Twitter Telegram Скопировать ссылку

 vlada_maestro / shutterstock

Наталья Березовская

Автор в сфере IT, digital, экономики и финансов. Ведёт некоммерческий проект для начинающих писателей «ЛитЦех».

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

В этом способе не нужен традиционный установщик пакетов pip — модуль подключается прямо из источника. Это удобно, когда у вас несколько версий Python и нужно импортировать модуль в разные. Рекомендуем научиться делать это сразу.

Для этого скачайте файл с PyPI и извлеките его в системе.

Поменяйте каталог на папку с файлом setup.

python setup.py install

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

c:\python34\python.exe setup.py install

Название говорит само за себя — способ легкий, буквально в два клика. Если устанавливали вручную, то на компьютере уже стоит setuptools, и вы сможете использовать easy install, что лежит в папке со скриптами Python.

Если добавить папку со скриптами в путь операционной системы, вы сможете вызвать easy install через командную строку без указания полного адреса.

Теперь выполните следующее:

easy_install package_name

И автоматически установите любой необходимый пакет. Однако есть ограничения:

  • Он может попробовать запустить пакет, который еще не загрузился до конца.
  • С помощью easy install нельзя провести деинсталляцию.

Из-за этих и других причин в сообществе языка Python придумали и реализовали программу pip.

Она появилась в Python 3.4 и скачивается вместе с самим языком, но если у вас более ранняя версия, то установите pip вручную:

  • Зайдите в PyPI и скачайте скрипт get-pip.py.
  • Затем выполните команду:
python get-pip.py

Установятся setuptools, если ранее его не было на компьютере, и сам pip. С его помощью подключают любые библиотеки и файлы — всё, что только может установить easy install. Но теперь для этого будет использоваться иная команда:

pip install package_name

А для обновления пакета применяйте:

pip install -U PackageName

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

Vkontakte Twitter Telegram Скопировать ссылку

Python

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

Узнать про курс

Учись бесплатно:
вебинары по&nbspпрограммированию, маркетингу и&nbspдизайну.

Участвовать

Обучение: Python Узнать больше

«Яндекс» тестирует подробные карты в своём приложении 22 дек 2022

Художники недовольны, что нейросети рисуют лучше них 22 дек 2022

GitHub перестала поддерживать редактор кода Atom 16 дек 2022

Понравилась статья?

Да

Введение в Python для библиотек: Библиотеки

Обзор

Обучение: 10 мин.
Упражнения: 10 мин

Вопросы

  • Как я могу расширить возможности Python?

  • Как я могу использовать программное обеспечение, написанное другими людьми?

  • Как я могу узнать, что делает это программное обеспечение?

Цели

  • Объясните, что такое программные библиотеки и почему программисты их создают и используют.

  • Напишите программы, которые импортируют и используют библиотеки из стандартной библиотеки Python.

  • Найдите и прочитайте документацию по стандартным библиотекам в интерактивном режиме (в интерпретаторе) и в Интернете.

Большая часть мощи языка программирования находится в его (программных) библиотеках.

  • A (программное обеспечение) библиотека — это набор файлов (называемых модулями ), который содержит функции для использования другими программами.
    • Может также содержать значения данных (например, числовые константы) и другие элементы.
    • Содержимое библиотеки должно быть связано, но нет никакого способа обеспечить это.
  • Стандартная библиотека Python представляет собой обширный набор модулей, с самим питоном.
  • Многие дополнительные библиотеки доступны в PyPI (индекс пакетов Python).
  • Позже мы увидим, как писать новые библиотеки.

Библиотеки и модули

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

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

  • Используйте import для загрузки библиотечного модуля в память программы.
  • Тогда обращайтесь к вещам из модуля как имя_модуля. имя_вещи .
    • Python использует . означает «часть».
  • Используя строку , один из модулей в стандартной библиотеке:
 строка импорта
print('Нижние буквы ascii равны', string.ascii_lowercase)
print(string.capwords('напишите это предложение с большой буквы.'))
 
 Нижние буквы ascii: abcdefghijklmnopqrstuvwxyz
Напишите это предложение с большой буквы.
 
  • Вы должны обратиться к каждому элементу с именем модуля.
    • string.capwords(ascii_lowercase) не работает: ссылка на ascii_lowercase каким-то образом не «наследует» ссылку функции на строку .

Используйте

справку , чтобы узнать о содержимом модуля библиотеки.
  • Работает так же, как справка для функции.
 справка(строка)
 
 Справка по строке модуля:
ИМЯ
    string — набор строковых констант. 
МОДУЛЬ ССЫЛКА
    https://docs.python.org/3.6/library/string
    
    Следующая документация создается автоматически из пакета Python.
    исходные файлы. Он может быть неполным, неправильным или включать функции, которые
    считаются деталями реализации и могут варьироваться в зависимости от Python
    реализации. В случае сомнений обратитесь к справочнику по модулям на веб-сайте
    расположение указано выше.
ОПИСАНИЕ
    Переменные публичного модуля:
    
    пробел -- строка, содержащая все пробелы ASCII.
    ascii_lowercase -- строка, содержащая все строчные буквы ASCII.
    ascii_uppercase -- строка, содержащая все заглавные буквы ASCII.
    ascii_letters -- строка, содержащая все буквы ASCII
    digits -- строка, содержащая все десятичные цифры ASCII.
    hexdigits -- строка, содержащая все шестнадцатеричные цифры ASCII.
    octdigits -- строка, содержащая все восьмеричные цифры ASCII.
    пунктуация -- строка, содержащая все знаки пунктуации ASCII.
    printable -- строка, содержащая все символы ASCII, считающиеся печатаемыми
КЛАССЫ
    встроенный. объект
        Форматтер
        Шаблон
⋮ ⋮ ⋮
 

Импорт определенных элементов из библиотечного модуля для сокращения программ.

  • Используйте from ... import ... для загрузки только определенных элементов из библиотечного модуля.
  • Тогда обращайтесь к ним напрямую без имени библиотеки в качестве префикса.
 из строки импорта ascii_letters
print('Буквы ASCII', ascii_letters)
 
 Буквы ASCII: abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
 

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

  • Используйте import ... as ... , чтобы дать библиотеке короткий псевдоним при импорте.
  • Затем ссылайтесь на элементы в библиотеке, используя это сокращенное имя.
 импортировать строку как s
print(s.capwords('напишите это предложение еще раз с заглавной буквы.'))
 
 Напишите это предложение еще раз, пожалуйста. 
 
  • Обычно используется для часто используемых библиотек или библиотек с длинными именами.
    • Например, библиотека pandas часто имеет псевдоним пд .
  • Но может затруднить понимание программ, так как читатели должны узнать псевдонимы вашей программы.

Изучение библиотеки ОС

Библиотека os обеспечивает доступ к функциям операционной системы.

  1. Какую функцию из библиотеки os можно использовать для определения текущего рабочий каталог?

Решение

  1. Использование справки мы видим, что у нас есть os.getcwd() который возвращает строка, представляющая текущий рабочий каталог.

Поиск правильного модуля

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

 год = 2016
месяц = ​​10
день = 22
 
  1. Какой модуль стандартной библиотеки может вам помочь?
  2. Какую функцию вы бы выбрали из этого модуля?
  3. Попробуйте написать программу, использующую эту функцию.

Решение

Похоже, что модуль datetime может вам помочь.

Вы можете использовать date(год, месяц, дата).isoformat() для преобразования даты:

 импорт даты и времени
iso_date = datetime.date(год, месяц, день).isoformat()
печать (iso_date)
 

или более компактно:

 импорт даты и времени
print(datetime.date(год, месяц, день).isoformat())
 

Когда доступна помощь?

Когда ваш коллега набирает help(os) , Python сообщает об ошибке:

 NameError: имя «ОС» не определено
 

Что забыл сделать ваш коллега?

Решение

Импорт модуля ОС ( импорт ОС )

Импорт с псевдонимами

  1. Заполните пропуски, чтобы программа напечатала 0123456789 .
  2. Перепишите программу так, чтобы она использовала импорт без как .
  3. Какую форму вам легче читать?
 импортировать строку как s
числа = ____.цифры
Распечатать(____)
 

Решение

 импортировать строку как s
цифры = s.digits
печать (числа)
 

можно записать как

 строка импорта
числа = строка.цифры
печать (числа)
 

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

Есть много способов импортировать библиотеки!

Сопоставьте следующие операторы печати с соответствующими библиотечными вызовами

Звонки в библиотеку:

 А) из цифр импорта строки
Б) импортировать строку
C) импортировать строку как s
 

Команды печати:

 1.  print(list(s.digits))
2. печать (список (цифры))
3. печать (строка. ascii_uppercase)
 

Решение

A2) Импорт цифр из строки предоставляет методы цифр B3) Импорт строки предоставляет такие методы, как ascii_uppercase , но требует 9строка 0081. Синтаксис . C1) Импорт строки с псевдонимом s позволяет s.digits

Импорт определенных элементов

  1. Заполните пробелы, чтобы программа напечатала 90,0 .
  2. Считаете ли вы эту версию более легкой для чтения, чем предыдущие?
  3. Почему бы программистам не всегда использовать эту форму импорта ?
 ____ математический импорт ____, ____
угол = градусы (пи / 2)
печать (угол)
 

Решение

 из степени импорта математики, пи
угол = градусы (пи / 2)
печать (угол)
 

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

Чтение сообщений об ошибках

  1. Прочтите приведенный ниже код и попытайтесь определить ошибки, не запуская его.
  2. Запустите код и прочитайте сообщение об ошибке. Что это за ошибка?
 импорт даты и времени
дата/время.дата(2017,13,1)
 

Решение

  1. Объект даты принимает аргументы в следующем порядке: год, месяц, день, поэтому 13 недопустимое значение для месяца.
  2. Вы получаете ошибку типа «ValueError», указывающую на то, что объект получил недопустимое значение аргумента. Дополнительное сообщение «месяц должен быть в 1..12» проясняет, в чем проблема.

Ключевые моменты

  • Большая часть возможностей языка программирования заключена в его библиотеках.

  • Программа должна импортировать библиотечный модуль, чтобы использовать его.

  • Использовать помогите узнать о содержимом библиотечного модуля.

  • Импорт определенных элементов из библиотеки для сокращения программ.

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

Как импортировать библиотеку в Python — пример

  • Время чтения: