Основы разделения Python-кода

PythonPythonBeginner
Практиковаться сейчас

This tutorial is from open-source community. Access the source code

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

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


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL python(("Python")) -.-> python/BasicConceptsGroup(["Basic Concepts"]) python(("Python")) -.-> python/DataStructuresGroup(["Data Structures"]) python(("Python")) -.-> python/ModulesandPackagesGroup(["Modules and Packages"]) python(("Python")) -.-> python/ObjectOrientedProgrammingGroup(["Object-Oriented Programming"]) python(("Python")) -.-> python/AdvancedTopicsGroup(["Advanced Topics"]) python/BasicConceptsGroup -.-> python/comments("Comments") python/DataStructuresGroup -.-> python/tuples("Tuples") python/ModulesandPackagesGroup -.-> python/importing_modules("Importing Modules") python/ModulesandPackagesGroup -.-> python/standard_libraries("Common Standard Libraries") python/ObjectOrientedProgrammingGroup -.-> python/constructor("Constructor") python/AdvancedTopicsGroup -.-> python/decorators("Decorators") subgraph Lab Skills python/comments -.-> lab-132740{{"Основы разделения Python-кода"}} python/tuples -.-> lab-132740{{"Основы разделения Python-кода"}} python/importing_modules -.-> lab-132740{{"Основы разделения Python-кода"}} python/standard_libraries -.-> lab-132740{{"Основы разделения Python-кода"}} python/constructor -.-> lab-132740{{"Основы разделения Python-кода"}} python/decorators -.-> lab-132740{{"Основы разделения Python-кода"}} end

Создание файла setup.py

Добавьте файл setup.py в директорию /home/labex/project в верхний уровень вашего каталога проекта.

## setup.py
import setuptools

setuptools.setup(
    name="porty",
    version="0.0.1",
    author="Your Name",
    author_email="[email protected]",
    description="Practical Python Code",
    packages=setuptools.find_packages(),
)

Создание MANIFEST.in

Если у вашего проекта есть дополнительные файлы, укажите их с помощью файла MANIFEST.in. Например:

## MANIFEST.in
include *.csv

Разместите файл MANIFEST.in в той же директории, что и setup.py.

Создание исходного архива

Для создания архива с вашим кодом используйте файл setup.py. Например:

$ python setup.py sdist

Это создаст файл .tar.gz или .zip в директории dist/. Теперь вы можете передать этот файл кому-то другому.

Установка вашего кода

Другие могут установить ваш Python-код с помощью pip точно так же, как это делают для других пакетов. Они просто должны предоставить файл, созданный на предыдущем шаге. Например:

$ python -m pip install porty-0.0.1.tar.gz

Комментарий

Шаги выше описывают абсолютно минимальные основы создания пакета Python-кода, который можно передать другому человеку. На практике это может быть намного более сложным, в зависимости от зависимостей от третьих сторон, наличия или отсутствия в вашем приложении внешнего кода (например, C/C++) и т.д. Рассматривать это выходит за рамки данного курса. Мы только сделали первый, очень маленький шаг.

Упражнение 9.5: Создайте пакет

Возьмите код из porty-app/, который вы создали для упражнения 9.3, и проверьте, сможете ли вы повторить шаги, описанные здесь. В частности, добавьте файл setup.py и файл MANIFEST.in в корневую директорию. Создайте исходный архив, запустив python setup.py sdist.

В качестве последнего шага проверьте, сможете ли вы установить ваш пакет в виртуальную среду Python.

✨ Проверить решение и практиковаться

Резюме

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