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

  • Подготовьте свой код к публикации
  • Создайте пакет python
  • Создайте файлы, необходимые PyPi
  • Создать учетную запись PyPi
  • Загрузите свой пакет на github.com
  • Загрузите свой пакет в PyPi
  • Установите свой собственный пакет с помощью pip
  • Измените свой пакет

Но что такое PyPi?

Что ж, по их сайту:

Индекс пакетов Python (PyPI) - это хранилище программного обеспечения для языка программирования Python. PyPI поможет вам найти и установить программное обеспечение, разработанное и распространенное сообществом Python. Узнайте об установке пакетов. Авторы пакетов используют PyPI для распространения своего программного обеспечения. Узнайте, как упаковать код Python для PyPI.

Как использовать PyPi

Я уверен, что большинство из вас уже установили PyPi (pip) и работали с ним. Если нет, то обязательно должны! Это так же просто, как скачать этот файл. Теперь откройте командную строку и перейдите через cd в каталог, в котором находится загруженный файл. Затем запустите команду python get-pip.py.

cd "C://PATH//TO//YOUR//DOWNLOADED//FILE"
python get-pip.py

Чтобы использовать pip, введите в консоли «pip insall packagename». Если вы хотите установить scrapeasy, введите следующую команду:

pip install scrapeasy

Вы получали сообщение об ошибке «pip» не распознается как внутренняя или внешняя команда, работающая программа или командный файл.? Не паникуйте, мы поняли. Ваш скрипт pip отсутствует в переменных среды Windows, поэтому вы не можете получить к нему доступ из любой точки вашей системы. Давайте исправим это с помощью следующей команды:

setx PATH "%PATH%;C://WHERE//PYTHON//IS//INSTALLED//Scripts"

Или, например,

setx PATH "%PATH%;C:\Python36\Scripts"

Теперь он должен работать.

Подготовьте свой код к публикации

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

Также убедитесь, что не включали код, который существует вне класса функции, иначе этот код будет запускаться каждый раз, когда кто-то импортирует вашу библиотеку. Если вы хотите включить пример кода в классы (что допустимо), оберните его в функцию «__main__».

Создайте пакет python

Чтобы создать пакет, создайте папку, которая будет называться именно так, как вы хотите, чтобы ваш пакет был назван. Поместите все файлы и классы, которые вы хотите отправить, в эту папку.

Теперь создайте файл с именем __init__.py (снова два подчеркивания). Откройте файл в любом текстовом редакторе. В этом файле вы ничего не пишете, кроме операторов импорта, которые имеют следующую схему:

Файл __init__.py используется для отметки, к каким классам вы хотите, чтобы пользователь мог получить доступ через интерфейс пакета. Приведем пример. Предположим, вы хотите загрузить в PyPi библиотеку с именем «MyLib». Сначала создайте папку «MyLib» и поместите в нее свои классы.

MyLib
-Class1.py
-Class2.py

Затем удалите все операторы печати и весь код, который не находится внутри класса.

Наконец, создайте файл __init.py __- и импортируйте все методы, к которым должен получить доступ пользователь.

MyLib
-__init__.py
-File1.py
-File1.py

Создать учетную запись PyPi

Вы можете зарегистрироваться для учетной записи PyPi здесь. Запомните свое имя пользователя (не имя, не адрес электронной почты) и пароль, он понадобится вам позже в процессе загрузки.

Загрузите свой пакет на github.com

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

Создайте файлы, необходимые PyPi

Для работы PyPi нужны три файла:

  • setup.py
  • setup.cfg
  • LICENSE.txt
  • README.md (необязательно, но настоятельно рекомендуется)

Поместите все эти файлы за пределы папки вашего пакета:

MyLib
setup.py
setup.cfg
LICENSE.txt
README.md

Давайте пройдемся по этим файлам один за другим

setup.py

Файл setup.py содержит информацию о вашем пакете, которая нужна PyPi, например его имя, описание, текущая версия и т. Д. Скопируйте и вставьте следующий код и замените строки соответствующим содержимым:

Позвольте мне подробнее объяснить download_url и install_requires.

download_url

Вы ранее загрузили свой проект в репозиторий github. Теперь мы создаем новую релизную версию вашего проекта на github. Затем этот выпуск будет загружен любым, кто запустит команду «pip install YourPackage».

Сначала перейдите на github.com и перейдите в свой репозиторий. Затем щелкните вкладку «выпуски», а затем «Создать новый выпуск». Теперь определите версию тега (лучше всего использовать тот же номер, который вы использовали в поле версии setup.py: v_01. Добавьте заголовок выпуска и описание (не так важно), затем нажмите «опубликовать выпуск». Теперь вы видите новый выпуск, а в разделе Ресурсы есть ссылка на Исходный код (tar.gz). Щелкните правой кнопкой мыши по этой ссылке. и выберите Копировать адрес ссылки. Вставьте этот адрес ссылки в поле download_url в файле setup.py. Каждый раз, когда вы хотите обновить свой пакет позже, загружайте новый version в github, создайте новый выпуск, как мы только что обсуждали, укажите новый тег выпуска и скопируйте и вставьте ссылку на Source в файл setup.py (не забудьте также увеличить номер версии).

Install_requires

Здесь вы определяете все зависимости вашего пакета - все пакеты pip, которые вы импортируете. Проще говоря: пройдите все свои классы и посмотрите, что вы импортировали. Каждый пакет, который вы импортировали и загрузили через pip (наиболее вероятно, все, кроме стандартных библиотек), должен быть указан здесь как install_requires, добавив имя пакета.

Позволь мне привести пример

Пакеты «numpy» и «scrapeasy» были загружены через pip, поэтому вам нужно добавить «numpy» и «scrapeasy» в свои зависимости. Но как узнать, является ли пакет стандартной библиотекой или загружен через pip? Что ж, просто откройте свой cmd и введите pip install packagename. Если вы получили сообщение «Требование уже выполнено», все готово. Если вы получаете сообщение об ошибке «Не удалось найти версию, удовлетворяющую требованиям», вы знаете, что этот пакет не установлен через pip или стандартную библиотеку.

Получающееся в результате поле install_requires будет выглядеть следующим образом:

setup.cfg

Это короткий. Создайте новый файл с именем «setup.cfg». Если у вас есть файл описания (а он обязательно должен быть!), Вы можете указать его здесь:

LICENSE.txt

Используйте этот файл для определения всех деталей лицензии. Лучше всего просто скопировать и вставить текст лицензии с этого веб-сайта в файл LICENSE.txt. Я всегда использую лицензию MIT для своих проектов, но не стесняйтесь использовать вашу собственную.

README.md (необязательно)

Создайте файл разметки с этим красивым сайтом, затем загрузите его и поместите в свой каталог.

Загрузите свой пакет в PyPi

Теперь настал последний шаг: загрузка вашего проекта в PyPi. Сначала откройте командную строку и перейдите в папку, в которой находятся все ваши файлы и ваш пакет:

cd "C://PATH//TO//YOUR//FOLDER"

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

python setup.py sdist

Вы можете получить предупреждение «Неизвестный вариант распространения:« install_requires ». Просто не обращай на это внимания.

Нам понадобится шпагат для процесса загрузки, поэтому сначала установите шпагат через pip:

pip install twine

Затем выполните следующую команду:

twine upload dist/*

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

Поздравляем, ваш пакет загружен! Посетите https://pypi.org/project/YOURPACKAGENAME/, чтобы увидеть свой пакет в Интернете!

Установите свой собственный пакет с помощью pip

Хорошо, теперь давайте проверим это. Откройте консоль и введите следующую команду:

pip install YOURPACKAGENAME

Оно работает! Теперь откройте python SHELL / IDLE и импортируйте свой пакет.

Измените свой пакет

Если вы хорошо поддерживаете свой пакет, вам нужно будет время от времени изменять форму исходного кода. Это легко. Просто загрузите свой новый код в github, создайте новую версию, затем адаптируйте файл setup.py (new download_url - в соответствии с вашим новым тегом выпуска, новая версия), затем снова запустите setup.py и команду twin (перейдите к своему папка первая!)

python setup.py sdist
twine upload dist/*

Наконец, обновите свой пакет через pip, чтобы увидеть, сработали ли ваши изменения:

pip install YOURPACKAGE --upgrade

Если вам нужен специалист в области разработки программного обеспечения или искусственного интеллекта, посетите мою Компанию по разработке программного обеспечения в Цюрихе.