Цель
Познакомьтесь с фундаментальными условиями проекта Python.
Проект, пакеты, модули и сценарии
- Проект : Каталог, также известный как пакет верхнего уровня, который содержит пакеты и модули
- Пакет (в проекте) : каталог, который содержит модули и/или пакеты (подзадачи)
- Модуль : сценарий Python (
.py
), который может быть импортирован с помощьюИмпорт
иот
- Скрипт : сценарий Python (
.py
), который может быть исключен из терминала. Это будет единственная ссылка на слово Скрипт , так как мы не сценарии, мы разрабатываем пакет Python
Пакеты, которые не являются частью проекта
- Пакет (встроенный) : Пакет, который поставляется с Python и может быть импортирован с помощью
Импорт
иот
Анкет Например, ОС , pathlib , и т.д. - Пакет (PIP) : Пакет, который был установлен пип и может быть либо импортирован с
импорт
иот
, или получить выполнение из командной линии (терминала). Подумайте об этом, PIP выступает за Упаковка Установщик для Питон. Например Numpy , подушка , и т.д.
Импорт модулей проекта
- Пакеты и модули Python Project могут быть (и должны быть) импортированы с Относительные пути из любого модуля, который Часть того же проекта Анкет Пример доступен в src/appy/core/app.py
from ..utils import message, img_ascii
- Если вы собираетесь импортировать пакет или модуль, который является Не часть того же проекта , вам придется использовать Абсолютные пути Анкет Это можно сделать с ImportLib , см. Это Stackoverflow Вопрос Анкет
Почему относительный импорт поднимает проблему в пилинте?
Я не знаю , все, что я могу сказать, это то, что это не происходит с Flake8 , Я имею в виду следующее предупреждение
Attempted relative import beyond top-level-package pylint(relative-beyond-top-level)
Этот пост в блоге является частью серии Python Project и основан на этом репозитории GitHub – Unfor19/Python-Project Анкет
Repo Github включает в себя пример проекта Python и Вики -страницы которые описывают необходимые шаги для разработки, создания и распространения пакета Python.
Первоначально опубликовано в github.com/unfor19/python-project 30 октября 2020 года
Оригинал: “https://dev.to/unfor19/python-project-packages-and-modules-k52”