Мягкое введение в мир упаковки Python и написание вашего первого пакета Python.
Несколько лет назад, когда я набрал pip install opencv-python
, прошло несколько секунд, и произошло нечто волшебное - я смог использовать OpenCV; не нужно было собирать его из исходников, не нужен компилятор, это определенно было захватывающе. Я мог установить любой пакет, который хотел, и не беспокоиться о его сборке / установке или настройке системной переменной.
На протяжении многих лет я продолжал использовать pip, и каждый раз это меня восхищало. Это действительно заставило меня задуматься о том, насколько простой может быть технология. Как пользователь Windows, каждый раз, когда я устанавливал что-то новое, мне приходилось настраивать системный путь. Так что это определенно сделало мою жизнь проще.
Несколько месяцев назад я решил написать свой собственный пакет Python. Мне всегда казалось, что Graphs интересен, и я решил написать полноценную библиотеку графов, и я начал писать Grapho (это работа в стадии разработки).
Файлы в одном модуле всегда могут быть импортированы всеми файлами в каталоге. Но что, если вы хотите, чтобы ваш модуль был доступен во всей системе?
›Вы добавляете файл setup.py в свой модуль (конечно, с соответствующей конфигурацией).
Но что, если вы хотите, чтобы пакет Python был доступен всем во всем мире?
›Вы публикуете свой пакет на PyPI. (так что каждый может pip install your-package-name
)
Хватит разговоров, давайте напишем код. Напишем простую функцию и упакуем ее.
# hello.py
def heythere(): print("hey there")
# setup.py
#!/usr/bin/env python # -*- coding: utf-8 -*- from setuptools import setup, find_packages setup( author="Chinmay Shah", author_email='[email protected]', classifiers=[ 'License :: OSI Approved :: MIT License', 'Programming Language :: Python :: 3.7', ], description="Says hello", license="MIT license", include_package_data=True, name='hello', version='0.1.0', zip_safe=False, )
Setup.py - это то, что pip ищет в заданном каталоге. Он использует так называемые setuptools [1], которые позволяют создавать пакеты. Он содержит имя вашего пакета, краткое описание вашего пакета, а также информацию об авторе. И не забудьте указать, для какой версии Python он создан. Все эти метаданные важны.
Выглядит просто? Тогда давай попробуем это. Давай установим - pip install .
Но что это значит, когда я говорю, что он его устанавливает?
- Во-первых, он создает файл колеса (.whl); который является допустимым файлом для распространения пакета.
- В процессе установки он использует этот файл колеса и устанавливает его в
site-package
directory (Anaconda использует его). - В случае загрузки из Интернета локальный кеш часто создается в папке
pkgs
.
Но что такое pip
?
pip - это установщик пакетов для Python, используемый для установки пакетов (в основном) из PyPI (Python Package Index). Запущен в 2008 году как обновление до easyinstall
, хотя оба они построены на основе setuptools
. [1]
PyPI - это обширный указатель пакетов, в который каждый может отправить свой пакет, и любой может сделать это в любой точке земного шара pip install your-package-name
.
Следите за следующей публикацией, в которой я расскажу о том, как написать пакет, а также о том, как опубликовать его на PyPI.
Есть какие мысли? Напишите нам в Twitter, Linkedin или E-Mail.
Ссылка:
[1] Инструменты настройки - https://setuptools.readthedocs.io/en/latest/