Куда устанавливаются библиотеки python
Перейти к содержимому

Куда устанавливаются библиотеки python

  • автор:

Где хранятся модули в Python?

Python_Deep_6.11-5020-3e1392.png

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

Модуль в Python — это файл, в котором содержится код на Python. Любой модуль в Python может включать в себя переменные, объявления функций и классов. Вдобавок ко всемe, в модуле может содержаться исполняемый код.

Команда import в Python

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

 
import module_1[, module_2[. module_N]

Как только Python-интерпретатор встречает команду import, он выполняет импорт модуля, если он есть в пути поиска Python. Что касается пути поиска Python, то речь идёт о списке директорий, в которых интерпретатор выполняет поиск перед загрузкой модуля. Посмотрите на пример кода при использовании модуля math:

 
import math # Используем функцию sqrt из модуля math print (math.sqrt(9)) # Печатаем значение переменной pi, определенной в math print (math.pi)

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

Команда from . import

Команда from . import даёт возможность выполнить импорт не всего модуля целиком, а лишь конкретного его содержимого:

 
# Импортируем из модуля math функцию sqrt from math import sqrt # Выводим результат выполнения функции sqrt. # Нам больше незачем указывать имя модуля print (sqrt(144)) # Но мы уже не можем получить из модуля то, что не импортировали print (pi) # Выдаст ошибку

Обратите внимание, что выражение from . import не импортирует модуль полностью, а лишь предоставляет доступ к объектам, указанным нами.

Команда from . import *

Также в Python мы можем импортировать из модуля переменные, классы и функции за один раз. Чтобы это выполнить, применяется конструкция from . import *:

 
from math import * # Теперь у нас есть доступ ко всем функция и переменным, определенным в модуле math print (sqrt(121)) print (pi) print (e)

Использовать данную конструкцию нужно осторожно, ведь при импорте нескольких модулей можно запутаться в собственном коде.

Так где хранятся модули в Python?

При импорте модуля, интерпретатор Python пытается найти модуль в следующих местах: 1. Директория, где находится файл, в котором вызывается команда импорта. 2. Директория, определённая в консольной переменной PYTHONPATH (если модуль не найден с первого раза). 3. Путь, заданный по умолчанию (если модуль не найден в предыдущих двух случаях).

Что касается пути поиска, то он сохраняется в переменной path в системном модуле sys. А переменная sys.path включает в себя все 3 вышеописанных места поиска.

2-20219-5cca3e.png

Получаем список всех модулей Python

Чтобы получить полный список модулей, установленных на ПК, используют команду help("modules") .

3-20219-a2b765.png

Создаём свой модуль в Python

Для создания собственного модуля в Python нужно сохранить ваш скрипт с расширением .py. После этого он станет доступным в любом другом файле. Давайте создадим 2 файла: module_1.py и module_2.py, а потом сохраним их в одной директории. В первом файле запишем:

 
def hello(): print ("Hello from module_1")

А во втором вызовем функцию:

 
from module_1 import hello hello()

После выполнения кода 2-го файла получим:

 
Hello from module_1

Функция dir() в Python

Возвратит отсортированный список строк с содержанием всех имён, определенных в модуле.

 
# на данный момент нам доступны лишь встроенные функции dir() # импортируем модуль math import math # теперь модуль math в списке доступных имен dir() # получим имена, определенные в модуле math dir(math)

4-20219-710929.png

Пакеты модулей в Python

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

Представьте, что у нас следующая структура:

 
|_ my_file.py |_ my_package |_ __init__.py |_ inside_file.py

В файле inside_file.py определена некоторая функция foo. В итоге, дабы получить доступ к этой функции, в файле my_file нужно выполнить:

 
from my_package.inside_file import foo

Также нужно обратить внимание на то, есть ли внутри директории my_package файл init.py. Это может быть и пустой файл, сообщающий Python, что директория является пакетом модулей. В Python 3 включать файл init.py в пакет модулей уже не обязательно, но мы рекомендуем всё же делать это, чтобы обеспечить обратную совместимость.

Где pip устанавливает свои пакеты?

Representing Python package installation in global and virtual environments.

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

Допустим, была выполнена команда:

pip install requests

Эта команда устанавливает пакет «requests» с помощью pip. Но где именно он устанавливается? В какой директории его можно найти?

Пакеты, установленные с помощью pip, обычно устанавливаются в директории, где установлен Python. Они располагаются в поддиректории «site-packages».

Если установка происходит в виртуальном окружении, то пакеты устанавливаются в директорию этого виртуального окружения. Снова, они будут находиться в поддиректории «site-packages».

Таким образом, если, например, используется виртуальное окружение, созданное в директории «myenv», то пакеты будут установлены в директории «myenv/lib/pythonX.Y/site-packages», где «X.Y» — это версия Python, используемая в виртуальном окружении.

Если же Python и pip установлены глобально, то пакеты будут установлены в директории «lib/pythonX.Y/site-packages» в директории установки Python.

В любом случае, для того чтобы узнать точное местоположение установленного пакета, можно воспользоваться модулем «site» в Python. Следующая команда выведет список всех директорий, где pip ищет пакеты:

python -m site

Также можно использовать следующую команду для вывода директории установки конкретного пакета:

python -c "import package; print(package.__path__)"

Здесь «package» — это имя установленного пакета.

Итак, теперь стало ясно, где pip устанавливает пакеты и как найти их местоположение.

Установка модулей Python¶

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

Это позволяет Python пользователям эффективно обмениваться информацией и сотрудничать, извлекая выгоду из решений, которые другие уже создали для решения общих (а иногда даже редких!) проблем, а также потенциально внося свой вклад в создание общего пула.

В данном руководстве рассматривается часть процесса установки. Руководство по созданию и совместному использованию собственных проектов Python см. в руководстве по распространению .

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

Ключевые термины¶

  • pip является предпочтительной программой установки. Начиная с версии Python 3.4, он по умолчанию входит в состав Python бинарных установщиков.
  • виртуальная среда - это полуавтономная среда Python, которая позволяет устанавливать пакеты для использования определенным приложением, а не для установки в масштабах всей системы.
  • venv является стандартным инструментом для создания виртуальных сред и является частью Python начиная с Python 3.3. Начиная с версии Python 3.4, по умолчанию устанавливается pip во все созданные виртуальные среды.
  • virtualenv является сторонней альтернативой (и предшественником) venv . Он позволяет используемый виртуальные среды на версиях Python до 3.4, которые либо вообще не предоставляют venv , либо не могут автоматически устанавливать pip в созданные среды.
  • Пакетный индекс Python является публичным хранилищем лицензионных пакетов с открытым исходным кодом, доступных для использования другими пользователями Python.
  • Комитет по пакетам в Python является группой разработчиков и авторов документации, ответственных за обслуживание и развитие стандартных средств пакетизации и связанных с ними стандартов метаданных и форматов файлов. Они поддерживают различные инструменты, документацию и трекеры проблем как на GitHub, так и на Bitbucket.
  • distutils - это исходная система сборки и распространения, впервые добавленная в стандартную библиотеку Python в 1998 году. В то время как прямое использование distutils постепенно прекращается, оно по-прежнему закладывает основу для нынешней инфраструктуры пакетизации и распространения, и оно не только остается частью стандартной библиотеки, но и его название живет по- другому (например, название списка рассылки используемый для координации Python разработки стандартов пакетизации).

Изменено в версии 3.5: Теперь для создания виртуальных сред рекомендуется использовать venv .

Базовое использование¶

Все стандартные инструменты пакетизации предназначены для использования из командной строки.

Следующая команда установит последнюю версию модуля и его зависимостей из Пакетного индекса Python (PIP):

python -m pip install SomePackage

Для пользователей POSIX (включая пользователей Mac OS X и Linux) примеры в этом руководстве предполагают использование виртуальной среды .

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

Также можно указать точную или минимальную версию непосредственно в командной строке. При использовании операторов сравнения, таких как > , < или некоторые другие специальные символы, которые интерпретируются оболочкой, имя пакета и версия должны быть заключены в двойные кавычки:

python -m pip install SomePackage==1.0.4 # конкретная версия python -m pip install "SomePackage>=1.0.4" # минимальная версия

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

python -m pip install --upgrade SomePackage

Дополнительную информацию и ресурсы, касающиеся pip и его возможностей, можно найти в Руководство пользователя пакетизации Python.

Создание виртуальных сред осуществляется через модуль venv . При установке пакетов в активную виртуальную среду используются команды, показанные выше.

Как я это делаю?¶

Это быстрые ответы или ссылки на некоторые общие задачи.

… установить pip в версиях Python до Python 3.4?¶

Python начал содержать pip только с Python 3.4. Для более ранних версий pip необходимо «загрузить», как описано в руководстве пользователя по пакетизации Python.

… устанавливать пакеты только для текущего пользователя?¶

Передача опции --user python -m pip install позволит установить пакет только для текущего пользователя, а не для всех пользователей системы.

… установить научные пакеты Python?¶

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

… работать с несколькими версиями Python, установленных параллельно?¶

В Linux, Mac OS X и других системах POSIX используйте команды версионированного Python в сочетании с коммутатором -m для запуска соответствующей копии pip :

python2 -m pip install SomePackage # по умолчанию Python 2 python2.7 -m pip install SomePackage # конкретно Python 2.7 python3 -m pip install SomePackage # по умолчанию Python 3 python3.4 -m pip install SomePackage # конкретно Python 3.4

Также могут быть доступны команды pip с соответствующей версией.

В Windows используйте средство запуска py Python в сочетании с переключателем -m :

py -2 -m pip install SomePackage # по умолчанию Python 2 py -2.7 -m pip install SomePackage # конкретно Python 2.7 py -3 -m pip install SomePackage # по умолчанию Python 3 py -3.4 -m pip install SomePackage # конкретно Python 3.4

Распространенные проблемы установки¶

Установка в систему Python в Linux¶

В системах Linux Python установка обычно включается в дистрибутив. Установка в этот Python требует доступа root к системе и может помешать работе диспетчера пакетов системы и других компонентов системы, если компонент неожиданно обновлен с помощью pip .

В таких системах часто при установке пакетов с pip лучше использовать виртуальную среду или пользовательскую установку.

Pip не установлен¶

Возможно, что pip не будет установлен по умолчанию. Одним из возможных исправлений является:

python -m ensurepip --default-pip

Имеются также дополнительные ресурсы для установки pip.

Установка двоичных расширений¶

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

С введением поддержки двоичного формата wheel , и возможностью публикации wheels по крайней мере для Windows и Mac OS X через Пакетный Индекс Python (PIP), эта проблема, как ожидается, со временем уменьшится, так как пользователи более регулярно могут устанавливать предварительно построенные расширения, а не должны строить их сами.

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

Установка и использование модулей (библиотек) Python

Python - высокоуровневый язык программирования придуманный нидерландским программистом Гвидо (Гуидо) ван Россумом в 1991 году. Язык назван Python в честь популярного в 70-е британского телешоу Monty Python's Flying Circus, скорее всего из-за того, что MPFC были первопроходцами жанра абстрактного юмора и язык Python максимально абстрактный. Так же код Python в основном является скриптом для интерпретатора — виртуальной машины, в которой он выполняется без компилирования в машинный код. Код Python можно скомпилировать в исполняемый машинный код при помощи компилятора Cython, но это уже выходит за пределы охвата данной статьи.

В этой статье мы рассмотрим как работать и устанавливать модули для интерпретатора Python на Raspberry Pi в графической среде Raspbian.

Внимание! Для корректной работы модулей FLASH-I2C на Raspberry Pi под управлением Raspberry OS "Buster" необходимо выключить динамическое тактирование ядра (опция core_freq_min должна быть равна core_freq в /boot/config.txt ) Ссылка на подробное описание.

Нам понадобится:

  • Raspberry Pi
  • Шнур micro USB-B - USB A
  • Шнур HDMI-HDMI
  • Блок питания USB 2,5А
  • Клавиатура
  • Мышь
  • HDMI-совместимый монитор
  • ПК в одной сети c Raspberry
  • Кардридер microSD
  • microSD карта памяти

Если из этого всего у вас есть только сама Raspberry, блок питания, SD карта и ПК с кард ридером — не переживайте, Raspberry можно настроить для подключения и удалённой работы по локальной сети при помощи этой статьи.

Предварительная настройка:

Для начала воспользуемся этой инструкцией для копирования образа диска системы на нашу microSD карту.

Если нужно работать с Rapberry по удалённому соединению (в случае отсутствия клавиатуры, мыши и монитора), можно воспользоваться этой статьёй.

Установка в графической среде:

Этот раздел объясняет процесс установки модулей Python в графической среде в редакторе Thonny Python IDE.

Курсором мыши наводим на пиктограмму малины в правом верхнем углу:

Выбираем в меню приложений Программирование -> Thonny Pyth on IDE:

Откроется окно Thonny Python IDE. Если под шапкой окна нет строки меню, нажимаем Switch to regular mode в правом верхнем углу, перезапускаем программу для применения изменений.

В строке меню выбираем Tools -> Manage packages.

Откроется окно установки пакетов:

В строке поиска вводим название необходимого нам модуля, для примера возьмём наш модуль управления I2C реле pyiArduinoI2Crelay:

После ввода нажимаем кнопку Search, справа от списка установленных модулей появится результат поиска. Нажимаем кнопку Install в нижней части окна:

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

После установки модуль появится в списке установленных:

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

Попробуем написать и запустить следующий скрипт:

from pyiArduinoI2Crelay import * print(ALL_CHANNEL)

Набираем с клавиатуры вышеуказанный текст в главном окне редактора, сохраняем файл в меню File -> save, выбираем название для файла (например, new), нажимаем большую зелёную кнопку Play (Run curent script):

В нижнем поле редактора под названием shell будет выведен текст "255" - это значение константы ALL_CHANNEL из модуля pyiArduinoI2Crelay:

Установка в эмуляторе терминала:

Для использования модуля в качестве системного его нужно установить от имени супер-пользователя из командной строки. Этот раздел разъясняет этот процесс.

Нажимаем курсором мыши на пиктограмму виртуального терминала LXTerminal в верхнем меню:

Откроется окно виртуального терминала. Вводим с клавиатуры sudo pip3 install pyiArduinoI2Crelay и нажимаем клавишу enter, начнётся процесс установки:

Теперь можно пользоваться методами модуля.

Вводим с клавиатуры python3 и нажимаем enter, откроется строка ввода интерпретатора Python обозначаемая тремя правыми треугольными скобками ">>>":

Вводим с клавиатуры from pyiArduinoI2Crelay import *, нажимаем enter, затем в новой строке вводим print(ALL_CHANNEL) , нажимаем enter. Будет выведено значение 255 константы ALL_CHANNEL из модуля pyiArduinoI2Crelay:

Для выхода из интерпретатора наберем на клавиатуре exit() и нажмем enter

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *