Чем открыть setup py

Обновлено: 06.07.2024

Кто-нибудь может объяснить, что такое setup.py и как его можно настроить или использовать?

setup.py - это файл Python, который обычно сообщает вам, что модуль / пакет, который вы собираетесь установить, был упакован и распространен вместе с Distutils, который является стандартом для распространения модулей Python.

Это позволяет вам легко устанавливать пакеты Python. Часто достаточно написать:

pip будет использовать setup.py для установки вашего модуля. Не звоните setup.py напрямую.

setup.py - это файл Python, как и любой другой. Оно может принимать любое имя, за исключением соглашения, оно называется setup.py , поэтому для каждого сценария не существует другой процедуры.

Чаще всего setup.py используется для установки модуля Python, но для других целей сервера:

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

Если вы хотите установить модуль, но не хотите устанавливать pip , единственной альтернативой была установка модуля из файла setup.py . Это может быть достигнуто через python setup.py install . Это установит модуль Python в корневой словарь (без pip , easy_install и т. Д.).

Этот метод часто используется, когда pip потерпит неудачу. Например, если правильная версия Python нужного пакета недоступна через pip , возможно, из-за того, что он больше не поддерживается, загрузка исходного кода и запуск python setup.py install будут выполнять то же самое, за исключением случая требуются скомпилированные двоичные файлы (но без учета версии Python - если только не будет возвращена ошибка).

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

Создание расширений Python .

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

Сценарий установки легко создать, и после того, как файл будет правильно настроен, его можно скомпилировать, запустив python setup.py build (см. Ссылку для всех команд).

Еще раз он назван setup.py для простоты использования и по соглашению, но может принимать любое имя.

Cython:

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

Это может быть скомпилировано через python setup.py build

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

Это можно скомпилировать через python setup.py build .

Так что же такое setup.py файл?

Проще говоря, это скрипт, который строит или настраивает что-то в среде Python.

Распространяемый пакет должен содержать только один сценарий установки, но нередко объединять несколько вместе в один сценарий установки. Обратите внимание, что это часто включает distutils , но не всегда (как я показал в моем последнем примере). Следует помнить, что каким-то образом настраивается пакет / скрипт Python.

Он принимает имя, поэтому при сборке или установке всегда можно использовать одну и ту же команду.

Чтобы установить загруженный вами пакет Python, вы извлекаете архив и запускаете скрипт setup.py внутри:

Для меня это всегда было странно. Было бы более естественно указать менеджер загрузки при загрузке, как это было бы, например, в Ruby и Nodejs. >

Менеджер пакетов тоже удобнее, потому что он знаком и надежен. С другой стороны, каждый setup.py является новым, потому что он специфичен для пакета. Это требует веры в соглашение «Я верю, что этот setup.py принимает те же команды, что и другие, которые я использовал в прошлом». Это прискорбный налог на умственную силу воли.

Я не говорю, что рабочий процесс setup.py менее безопасен, чем менеджер пакетов (я понимаю, что Пип просто запускает setup.py внутри), но, конечно, я чувствую, что это странно и раздражающе. Существует гармония для команд, которые все находятся в одном приложении диспетчера пакетов. Вы могли бы даже полюбить это.

При загрузке пакета с помощью setup.py откройте свой терминал (Mac, Linux) или командную строку (Windows). Используя cd и помогая вам с помощью кнопки Tab, установите путь прямо к папке, в которую вы скачали файл и где находится setup.py :

Нажмите Enter, вы должны увидеть что-то вроде этого:

Затем введите после этого python setup.py install :

Нажмите enter . Выполнено!

Setup.py может использоваться в двух сценариях. Во-первых, вы хотите установить пакет Python. Во-вторых, вы хотите создать свой собственный пакет Python. Обычно стандартный пакет Python содержит пару важных файлов, таких как setup.py, setup.cfg и Manifest.in. Когда вы создаете пакет Python, эти три файла будут определять (содержимое в PKG-INFO в папке egg-info) имя, версию, описание, другие необходимые установки (обычно в файле .txt) и некоторые другие параметры. setup.cfg читается setup.py при создании пакета (может быть tar.gz). Manifest.in - это место, где вы можете определить, что должно быть включено в ваш пакет. В любом случае вы можете сделать кучу вещей, используя setup.py, как

Существует множество других команд, которые можно использовать с setup.py. за помощью

setup.py - это скрипт Python, который обычно поставляется с библиотеками или программами, написанными на этом языке. Его цель - правильная установка программного обеспечения.

Многие пакеты используют платформу distutils в сочетании с setup.py .

Если вы скачали пакет с файлом «setup.py» в корневой папке, вы можете установить его, запустив

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

setup.py - это ответ Python на многоплатформенный установщик и файл make .

Если вы знакомы с установками командной строки, то make && make install переводится как python setup.py build && python setup.py install .

Некоторые пакеты являются чистым Python и компилируются только байтами. Другие могут содержать собственный код, для которого потребуется собственный компилятор (например, gcc или cl ) и модуль интерфейса Python (например, swig или pyrex ).

Это помогает установить пакет python foo на вашем компьютере (также может быть в virtualenv ), чтобы вы могли импортировать пакет foo из других проектов, а также из [I] приглашений Python.

Он выполняет аналогичную работу pip , easy_install и т. д.,

Использование setup.py

Давайте начнем с некоторых определений:

Пакет - папка / каталог, содержащий файл __init__.py .
Модуль - допустимый файл Python с расширением .py .
Распространение . Как один пакет связан с другими пакетами и модулями .

Допустим, вы хотите установить пакет с именем foo . Тогда вы делаете,

Вместо этого, если вы не хотите на самом деле установить его, но все же хотели бы использовать его. Тогда делай,

Эта команда создаст символические ссылки на исходный каталог внутри site-пакетов вместо копирования. Из-за этого это довольно быстро (особенно для больших пакетов).

Создание setup.py

Если у вас есть дерево пакетов, как,

Затем вы делаете следующее в своем setup.py сценарии, чтобы его можно было установить на некотором компьютере:

Вместо этого, если ваше дерево пакетов более сложное, как показано ниже:

Тогда ваш setup.py в этом случае будет выглядеть так:

Добавьте больше материала в ( setup.py ) и сделайте его достойным:

Первый шаг - запросить имя пакета и пространство в pypi, используя:

Открытые файлы PY на ПК с Windows

Открытие скриптов Python

Программисты могут редактировать скрипты Python с помощью многочисленных программ. Фактически, вы можете редактировать PY-скрипт в Блокноте. Однако Notepad ++ является лучшим сторонним текстовым редактором, который также поддерживает формат файла PY. Это включает в себя подсветку синтаксиса и свертывание, параметры записи макросов, вкладки документов, настраиваемый графический интерфейс, и вы также можете расширить программное обеспечение с помощью плагинов сценариев.

Вы можете добавить Notepad ++ для большинства платформ Windows с этой страницы сайта. Обратите внимание, что это программное обеспечение имеет 32- и 64-разрядные версии. 64-разрядные версии не работают на 32-разрядных системах. Вы можете проверить эту спецификацию, щелкнув правой кнопкой мыши кнопку Win 10 Start и выбрав Система , чтобы открыть окно в снимке экрана непосредственно ниже.


Выберите Notepad ++ Installer 32-разрядная версия x86 (32-разрядная версия) или Notepad ++ Installer 64-разрядная версия x64 (64-разрядная версия) . Это позволит загрузить 32- или 64-разрядный мастер установки, с помощью которого вы можете установить программное обеспечение. Затем вы можете открыть скрипт в Notepad ++, нажав Файл > Открыть .



Загрузите этот инструмент, мы настоятельно рекомендуем

Вы можете открыть PY и многие другие файлы исходного кода с помощью Fil leViewer Plus. Это универсальный просмотрщик файлов для Windows, который может открывать и отображать более 300 различных типов файлов, просматривать и редактировать файлы исходного кода. Вы можете скачать бесплатную полнофункциональную пробную версию с официального сайта или купить ее по доступной цене.

  • Загрузить сейчас FileViewer Plus 3

Запуск скриптов Python

Текстовые редакторы хороши для редактирования файлов, но вам понадобится интерпретатор Python, чтобы открывать и запускать PY-скрипты. Некоторые переводчики поставляются в комплекте с программным обеспечением IDE Python. Однако CPython, иначе эталонная реализация, является интерпретатором по умолчанию для языка программирования. Вот как вы можете открывать PY-скрипты с этим интерпретатором.

Таким образом, вы можете редактировать и запускать PY-файлы с помощью текстовых редакторов, программного обеспечения IDE и интерпретаторов Python. Вы также можете конвертировать PY-файлы сценариев в Portable Document Format с помощью бесплатного программного обеспечения PDF24 Creator. Посетите эту страницу для получения дополнительной информации в формате PDF24.

Python стал одним из самых широко используемых языков программирования. Главным образом объясняется это тем, что мы, его обычные пользователи, можем поделиться своим кодом, обеспечивая другим возможность беспрепятственно им пользоваться. А сделать это можно общепринятым способом, упаковав весь код и загрузив его в каталог программного обеспечения Python (Python Package Index или PyPI ), с помощью которого пользователи легко и просто установят ваш пакет, используя инструмент pip.

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

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

Для работы с текущим руководством представим, что директория со всеми файлами Python, включая нужный нам python_file_0.py, называется test_package. Именно этот пакет мы и намерены опубликовать. Следуя принципу простоты, файл python_file_0.py содержит лишь следующий код, который будет использован по мере нашей готовности импортировать пакет после его публикации:

def hello_world():
print("Hello World!")

1. Подготовка файлов

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

  • В корневой директории на одном уровне с test_package создайте файл README.md. Он будет содержать необходимую пользователям информацию о пакете, например сведения об установке и инструкции по применению.
  • На этом же уровне находится файл setup.py. Он будет включать информацию, необходимую для подготовки пакета к публикации. Вскоре мы рассмотрим содержимое этого файла.
  • В директории test_package создайте файл __init__.py именно с таким именем. Он трансформирует обычную директорию в пакет Python. Для этого простого пакета просто поместим код в python_file_0.py и экспортируем from test_package.python_file_0 import hello_world.

Файл README

Теоретически для этого файла можно использовать простой текст, но отдав предпочтение файлу Markdown, вы получите разные возможности форматирования и таким образом сделаете его более интересным для чтения. Ниже показан пример простого файла README.md:

Обратите внимание, что основное содержание сохраняется как файл TXT, показывающий исходный текст для Markdown, перед тем как Github автоматически применит форматирование для файлов Markdown.

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

Файл setup

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

  • Сначала мы импортируем модуль setuptools, содержащий удобные методы настройки упаковки.
  • В вызове функции setup() большинство параметров очень простые и не требуют пояснений. Рассмотрим основные моменты:

long_description. Из файла README.md обычно устанавливается подробное описание. Для его корректного отображения вы указываете, что это файл Markdown, задавая параметр long_description_content_type.

packages. Перечень пакетов, подлежащих публикации в пакете дистрибутива. Поскольку мы публикуем только один пакет test_package, то в списке значится именно его имя. Однако если вы планируете опубликовать все пакеты директории, то для удобства их извлечения используйте setuptools.find_packages().

python_requires. Указывает необходимую для пакета версию Python.

2. Подготовка к загрузке

Создание API-токена

После регистрации аккаунта рекомендуется создать API-токен для загрузки пакета. Перейдите в раздел API tokens в настройках и кликните “Add API token.”

К подготовке и публикации первого пакета Python готовы!

Следуйте инструкциям, чтобы создать API-токен. Укажите его область действия (scope) применительно к конкретным или ко всем проектам. После этого важно сохранить токен, чтобы впоследствии можно было к нему вернуться, поскольку в целях безопасности нельзя пересоздавать или восстанавливать уже существующий токен.

Установка инструментов архивации и загрузки

Надо сказать, что для архивации и загрузки пакетов Python существуют различные инструменты. Мы задействуем те из них, которые чаще всего используются для дистрибуции: setuptools, wheel и twine.

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

python3 -m pip install --user --upgrade setuptools wheel twine

3. Дистрибуция пакета

Архивация пакета

Архивация — первый этап подготовки пакета к дистрибуции. В терминале перейдите в корневую директорию, содержащую все файлы пакета, например setup.py, и выполните следующую команду:

python3 setup.py sdist bdist_wheel

Эта команда задействует инструмент wheel, который использует подробную инструкцию, содержащуюся в setup.py, для создания всех необходимых для дистрибуции файлов. Ниже представлена структура файла после архивации.

В частности, как показано выше, в директории dist он создаст два ключевых файла, готовых к загрузке.

Загрузка пакета

Процесс загрузки пакета в PyPI довольно простой. Еще раз отметим, что мы используем тестовый сайт, принцип работы с которым ничем не отличается от основного аналога. Используем уже имеющийся у нас инструмент twine, выполнив следующую команду в терминале:

python3 -m twine upload --repository testpypi dist/*

По сути, эта команда запрашивает загрузку файлов из директории dist в репозиторий TestPyPI для дистрибуции. Вам предложат ввести имя пользователя и пароль, что является нормой при загрузке в PyPI. Но в целях безопасности будет лучше использовать в качестве имени __token__, а в качестве пароля — ранее созданный токен.

Если всё сделано правильно, то загрузка пакета пройдет гладко. Однако в случае возникновения каких-либо сложностей, в файле setup.py обычно предоставляется подробная информация о возможных ошибках. Исправив их, вы сможете двигаться дальше.

4. Тестирование пакета

Просмотр пакета на PyPI

К подготовке и публикации первого пакета Python готовы!

Импорт пакета

На этом же сайте вам предоставляется командная строка для установки тестового пакета. Просто скопируйте и вставьте в терминал:

С установкой этого пакета у вас не должно возникнуть сложностей. Настало время проверить, сможем ли мы его использовать, поскольку после загрузки пакета в репозиторий PyPI он считается общедоступным. Далее представлен импорт тестового пакета:

>>> from test_package import python_file_0
>>> python_file_0.hello_world()
Hello World!

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


Прежде чем что-то устанавливать, давайте разберёмся, что такое пакет, чем он отличается от модуля, и как с ним работать. У слова «пакет» применительно к Python два значения.

C одной стороны, пакеты Python — это Py-приложения, дополнения или утилиты, которые можно установить из внешнего репозитория: Github, Bitbucket, Google Code или официального Python Package Index . На сервере пакеты хранятся в .zip и .tar архивах, либо в дополнительной упаковке — «яйцах» (.egg, старый формат) или «колесах» (.whl). В составе пакета, как правило, есть сценарий установки setup.py, который хранит сведения о зависимостях — других пакетах и модулях, без которых пакет работать не будет.

С другой стороны, если речь об архитектуре Python-приложения, пакет — это каталог, внутри которого файл __init__.py и, опционально, другие каталоги и файлы .py . Так большую Python-программу разбивают на пакеты и модули. Модуль — файл с исходным кодом, который можно использовать в других приложениях: как «заготовку» для будущих проектов или как часть библиотеки/фреймворка. Но к теме статьи это прямого отношения не имеет, поэтому дальше мы будем говорить только о пакетах из репозиториев.

Чтобы за секунды устанавливать пакеты со всеми зависимостями, используют менеджер пакетов pip или модуль easy_install . В большинстве случаев рекомендуется использовать pip. И только если у вас есть инфраструктура на пакетах .egg, которые pip не открывает, нужен easy_install.

Установка PIP для Python 3 и 2

Если вы используете виртуальные окружения на базе venv или virtualenv, pip уже установлен. Начиная с Python 3.4 (для Python 2 — с версии 2.7.9) pip поставляется вместе с интерпретатором. Для более ранних версий устанавливать менеджер пакетов нужно вручную. Вариантов два:

C помощью скрипта get_pip.py — быстро.

Через setuptools — кроме pip сможем использовать easy_install.

Вариант 1. Скачиваем скрипт get_pip.py и запускаем в консоли. Для этого открываем терминал через Win+R>"cmd">OK и пишем:

Остальное установщик сделает сам: если нужно, попутно установит wheel (для распаковки .whl-колес) и setuptools. Чтобы запретить инсталляцию дополнительных инструментов, можно добавить в строку ключи --no-setuptools и/или --no-wheels.

Если возникает ошибка, путь к Python не прописан в переменной среды $PATH. Нужно либо найти эту переменную в системном реестре и задать её значение, либо каждый раз указывать полный путь до python.exe, а за ним уже имя исполняемого Py-файла:

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

Вариант 2. Скачиваем архив с setuptools из PYPI и распаковываем в отдельный каталог. В терминале переходим в директорию setuptools c файлом setup.py и пишем:

python setup.py install

Обновить pip для Python в Windows можно так:
python pip install -U pip

Если это не работает, нужно добавить путь к папке с pip в $PATH.

Установка пакета в pip

Пора запустить pip в Python и начать устанавливать пакеты короткой командой из консоли:

pip install имя_пакета

При установке в Windows, перед pip нужно добавить "python -m".

Обновить пакет не сложнее:

pip install имя_пакета -U

Если у вас последняя версия пакета, но вы хотите принудительно переустановить его:

pip install --force-reinstall

Посмотреть список установленных пакетов Python можно с помощью команды:

Найти конкретный пакет по имени можно командой "pip search". О других командах можно прочесть в справке, которая выдается по команде "pip help".

Удаление пакета Python

Когда пакет больше не нужен, пишем:

pip uninstall имя_пакета

Как установить пакеты в Python без pip

Формат .egg сейчас используют не часто, поэтому pip его не поддерживает. Модуль easy_install умеет устанавливать как .egg, так и обычные пакеты, но есть у него важные минусы:

он не удаляет пакеты,

он может пытаться установить недозагруженный пакет.

Использовать easy_install можно сразу после установки setuptools. Хранится модуль в папке Scripts вашего интерпретатора. Если у вас в $PATH верно прописан путь, ставить пакеты из PYPI можно короткой командой:

Для обновления после install и перед именем пакета нужно ставить ключ -U. Откатиться до нужной версии можно так:

Если нужно скачать пакет из альтернативного источника, вы можете задать URL или локальный адрес на компьютере:

Чтобы узнать об опциях easy_install, запустим его с ключом -h:

Список пакетов, установленных через easy_install, хранится в файле easy-install.pth в директории /libs/site-packages/ вашего Python.

К счастью, удалять установленные через easy_install пакеты можно с помощью pip. Если же его нет, потребуется удалить пакет вручную и стереть сведения о нем из easy-install.pth.

Теперь вы умеете ставить и удалять пакеты для вашей версии Python.

Кстати, для тех, кто изучает Python, мы подготовили список полезных и практичных советов.

Читайте также: