Как установить setup py linux
Кто-нибудь может объяснить, что такое 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, используя:
может кто-нибудь объяснить, что такое setup.py и как его можно настроить или использовать?
setup.py - это файл python, который обычно сообщает вам, что модуль/пакет, который вы собираетесь установить, был упакован и распространен с дистрибутивами, что является стандартом для распространения модулей Python.
Это позволяет легко устанавливать пакеты Python. Часто достаточно написать:
и модуль установит себя.
это помогает установить пакет python foo на вашей машине (также может быть в virtualenv ), так что вы можете импортировать пакет foo из других проектов, а также из подсказок [I]Python.
не задание pip , easy_install etc.,
используя setup.py
давайте начнем с некоторых определений:
пакета - КАТАЛОГ/КАТАЛОГ который содержит .
модуль - допустимый файл python с
setup.py является ответом Python на мультиплатформенный установщик и .
если вы знакомы с установками командной строки, то make && make install переводится как python setup.py build && python setup.py install .
некоторые пакеты являются чистым Python и компилируются только байтами. Другие могут содержать собственный код, для которого потребуется собственный компилятор (например, gcc или cl ) и модуль сопряжения Python (например, swig или pyrex ).
Если вы загрузили пакет, который имеет "setup.py" в корневой папке вы можете установить его, запустив
Если вы разрабатываете проект и Вам интересно, для чего этот файл полезен, проверьте документация Python по написанию сценария установки
setup.py - Это скрипт Python, который обычно поставляется с библиотеками или программами, написанными на этом языке. Его цель-правильная установка программного обеспечения.
многие пакеты используют distutils рамки в сочетании с setup.py .
setup.py может использоваться в двух сценариях, во-первых, вы хотите установить пакет Python. Во-вторых, вы хотите создать свой собственный пакет python. Обычно стандартный пакет Python имеет пару важных файлов, таких как setup.py, setup.cfg и Манифест.внутри. Когда вы создаете пакет Python, эти три файла будут определять (содержимое в pkg-INFO в папке egg-info) имя, версию, описание, другие необходимые установки (обычно в .txt файл) и несколько других параметров. установка.cfg это читать по setup.py пока пакет создан (может быть tar.gz). Манифест.in-это то, где вы можете определить, что должно быть включено в ваш пакет. В любом случае вы можете сделать кучу вещей, используя setup.py как
есть куча других команд, которые могут быть использованы с setup.py . за помощью!--3-->
при загрузке пакета с setup.py откройте терминал (Mac, Linux) или командную строку (Windows). Используя cd и помогая вам с помощью кнопки Tab установить путь прямо к папке, где вы загрузили файл и где есть setup.py :
нажмите enter, вы должны увидеть что-то вроде этого:
затем введите после этого python setup.py install :
пресс enter . Готово!
чтобы установить загруженный пакет Python, вы извлекаете архив и запускаете setup.py скрипт внутри:
мне это всегда казалось странным. Было бы более естественно указать менеджер пакетов на загрузку, как это было бы в Ruby и Nodejs, например. gem install rails-4.1.1.gem
менеджер пакетов также более удобен, потому что он знаком и надежен. С другой стороны, каждый setup.py является новым, потому что он специфичен для пакета. Она требует веры в конвенция "я доверяю этому setup.py принимает те же команды, что и другие, которые я использовал в прошлом". Это прискорбный налог на умственную силу воли.
Я не говорю, что setup.py рабочий процесс менее безопасен, чем менеджер пакетов (я понимаю, что Pip просто запускает setup.py внутри), но, конечно, я чувствую, что это неловко и неприятно. Существует гармония в командах, которые все находятся в одном приложении диспетчера пакетов. Вы даже можете полюбить его.
чтобы сделать его простым, setup.py выполняется как "__main__" когда вы называете установить функции другие ответы упомянули. Внутри setup.py, вы должны поставить все необходимое для установки пакета.
в следующих двух разделах обсуждаются две вещи setup.py модули есть.
setuptools.setup
эта функция позволяет указать атрибуты как имя проект, версия. Самое главное, эта функция позволяет устанавливать другие функции, если они упакованы правильно. См.этот сайт для примера setuptools.установка
Эти атрибуты setuptools.настройка включить установку этих типов пакетов:
пакеты, импортированные в ваш проект и перечисленные в PyPI используя setuptools.findpackages:
packages=find_packages (exclude=["docs", "tests",".gitignore", " README.первое", " описание.первый"])
пакеты не в PyPI, но можно загрузить с URL-адреса с помощью dependency_links
пользовательские функции
в идеальном мире, setuptools.setup будет обрабатывать все для вас. К сожалению, это не всегда так. Иногда вам нужно делать определенные вещи, такие как установка зависимостей с помощью подпроцесс команда, чтобы получить систему, которую вы устанавливаете в правильном состоянии для вашего пакета. Постарайтесь избежать этого, эти функции запутываются и часто отличаются между OS и даже распределение.
setup.py есть файл Python, как и любой другой. Он может принимать любое имя, кроме условного, он называется setup.py чтобы не было другой процедуры с каждым скриптом.
чаще всего setup.py используется для установки модуля Python, но сервер других целей:
модули:
возможно, это самое известное использование setup.py в модули. Хотя они могут быть установлены с помощью pip , старые версии Python не включали pip по умолчанию и они должны быть установлены отдельно.
если вы хотите установить модуль, но не хотите устанавливать pip , почти единственной альтернативой было установить модуль из . Это может быть достигнуто с помощью python setup.py install . Это установит модуль Python в корневой словарь (без pip , easy_install ect).
этот метод часто используется, когда pip не удастся. Например, если правильная версия Python желаемая пакет не доступен через pip возможно, потому, что он больше не поддерживается, загрузка источника и запуск python setup.py install выполнит то же самое, за исключением случаев, когда требуются скомпилированные двоичные файлы (но будет игнорировать версию Python-если не будет возвращена ошибка).
другое использование setup.py установить пакет из исходников. Если модуль все еще находится в разработке, файлы wheel будут недоступны, и единственный способ установить-установить из источника непосредственно.
создание расширений Python:
когда модуль был построен его можно преобразовать в модуль готовый для распределения используя сценарий установки distutils. После сборки они могут быть установлены с помощью команды выше.
сценарий установки легко построить, и как только файл был правильно настроен и может быть скомпилирован путем запуска python setup.py build (см. ссылку для всех команд).
еще раз он называется setup.py для простоты использования и по соглашению, но может принимать любое имя.
на Cython:
еще одно знаменитое использование setup.py файлы скомпилированных расширений. Для этого требуется сценарий установки с пользовательскими значениями. Они позволяют быстро (но после компиляции зависят от платформы) выполнять. Вот простой пример из документация:
это можно скомпилировать через python setup.py build
Cx_Freeze:
другой модуль, требующий сценария установки, - cx_Freeze . Это преобразует скрипт Python в исполняемые файлы. Это позволяет многим командам, таким как описания, имена, значки, пакеты, чтобы включить, исключить ect и после запуска будет производить распространяемое приложение. Пример из документация:
это может быть составлен через python setup.py build .
что это setup.py файл?
просто это скрипт, который создает или настраивает что-то в среде Python.
пакет при распространении должен содержать только один сценарий установки, но это не редкость, чтобы объединить несколько вместе в один сценарий установки. Обратите внимание, что это часто включает distutils но не всегда (как я показал в моем последнем примере). Вещь, чтобы помнить, что она просто настраивает пакет/скрипт Python каким-то образом.
он принимает имя так одна и та же команда всегда может быть использована при построении или установке.
Установка pip/setuptools/wheel в Unix/Linux
Приведу установку на различные Unix/Linux ОС.
Установка pip/setuptools/wheel в Fedora
Чтобы установить Python 2 на Fedora 21, используйте следующие команды.
Для начала обновим тулзы:
Чтобы установить Python 3 на Fedora 21, используйте следующие команды:
Чтобы установить Python 2 на Fedora 22, используйте следующие команды.
Для начала обновим тулзы:
Чтобы установить Python 3 на Fedora 22, используйте следующие команды:
Чтобы получить новые версии pip, setuptools и wheel для Python 2, вы можете включить PyPA Copr репозиторий:
И после чего, выполнить:
Установка pip/setuptools/wheel в CentOS/RHEL
Чтобы установить pip и wheel, существует два варианта:
1. Включите репозиторий EPEL, используя эти инструкции:
После чего, вы можете установить pip следующим образом:
На EPEL 7 (но не EPEL 6), вы можете установить wheel следующим образом:
2. Включите репозиторий PyPA Copr репозиторий:
После чего, вы можете установить pip следующим образом:
Чтобы обновить setuptools, запустите:
Чтобы установить Python 3.4 на CentOS7/RHEL7, используйте:
Установка pip/setuptools/wheel в openSUSE
Чтобы установить Python 2:
Чтобы установить Python 3:
Установка pip/setuptools/wheel в Debian/Ubuntu
Чтобы установить Python:
Чтобы установить Python 3:
Установка pip/setuptools/wheel в Arch Linux
Чтобы установить Python 2:
Чтобы установить Python 3:
Установка pip/setuptools/wheel в Mac OS X
Добавляем HOMEBREW на Mac OS X ( устанавливаем его):
После чего, можно приступать к установке:
Или, чтобы установить python 3:
Установка pip/setuptools/wheel с исходного кода.
И, чтобы получить самое новое ПО, НЕОБХОДИМО КОМПИЛИРОВАТЬ ЕГО!
Установка pip/wheel с исходного кода
Очень простая установка:
Установка setuptools с исходного кода
Смотрим где лежит нужный питон (у меня это 3.4):
И выполняем сборку:
ИЛИ, все в одной строке:
Установка easy_install с исходного кода
easy_install позволяет установить pip и его компоненты.
Смотрим где лежит нужный питон (у меня это 3.4):
И выполняем сборку:
Использование PIP
Поиск пакета Python с помощью команды pip:
Установка пакета с помощью команды pip:
- Установка по имени пакета:
- Установка по имени пакета (но, определенной версии):
- Установка пакета по URL:
Список пакетов Python, которые уже установлены в системе, можно проверить с помощью команды pip:
Показать информацию о пакете Python:
Вот полезное чтиво:
Добавить комментарий Отменить ответ
Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.
Одна из действительно полезных вещей в python — это система скриптов установки. Любой, серьезно увлекающийся python-программированием разработчик рано или поздно сталкивается с ней. Но из-за гибкости инструментария скриптов установки, их документация весьма раздута. На текущий момент имеется набор утилит (setuptools, distutils, distribute) выполняющих одинаковые задачи.
В данной статье я на конкретных примерах покажу как создать и настроить простой python-пакет.
Наш проект будет иметь следующую функциональность:
- Метод возвращающий строку: "Hello World!";
- Команда helloworld печатающая эту строку в стандартный вывод.
Создаем структуру проекта
Для начала создадим директорию для пакета. Ее минимальный набор файлов состоит из: файла дистрибьюции ( setup.py ) описывающего метаданные и python кода проекта (в нашем случае модуля helloworld).
Также, xорошим тоном считается создание в корне директории файла с описанием проекта: README.txt .
Получаем следующую структуру:
Наша корневая директория helloworld-project будет содержать мета-данные пакета и вспомогательные файлы (тесты, лицензию, документацию и т.д.), а поддиректория helloworld непосредственно сам модуль helloworld .
Теперь отредактируем файл: helloworld/core.py и добавим логику нашего приложения (получение и вывод строки "Hello World!"):
Редактируем мета-информацию (setup.py)
Заполним файл описания README.rst :
Теперь отредактируем файл setup.py :
Убедитесь, что в вашей системе доступны setuptools, в противном случае установите python-пакет distribute
Этих операций достаточно, чтобы собрать пакет дистрибьюции. Выполните команду сборки:
В случае успеха вы получите файл: dist/helloworld-1.0.tar.gz . Это полноценный, архивированный python-пакет и вы можете распространять его среди прочих разработчиков.
Виртуальное окружение
Virtualenv — пакет применяемый для создания изолированного python-окружения. Используем его для тестирования нашего проекта.
Создадим окружение env:
Команда создаст директорию env внутри нашего проекта и установит туда python, pip и distribute. Произведем в него установку нашего проекта.
И протестируем его работоспособность:
Все работает. Осталось добавить поддержку команды helloworld в консоли.
Создание команд
Для создания команды helloworld изменим файл setup.py :
В параметре entry_points мы задаем словарь с "точками вызова" нашего приложения. Ключ console_scripts задает список создаваемых исполняемых скриптов (в Windows это будут exe-файлы). В данном случае мы указали создание исполняемого скрипта helloworld при вызове которого будет запускаться метод print_message из модуля helloworld.core.
Переустановим модуль в наше окружение и проверим работу созданного скрипта (для этого прийдется активировать наше окружение):
Похоже все работает.
Работа с версиями
Номер версии важная часть любого проекта. От него зависит обновление пакетов и разрешение зависимостей. В примере выше мы указали номер версии 1.0 в файле setup.py . Более правильное решение перенести его в файл helloworld/__init__.py чтобы сделать доступным в python-коде. По существующим соглашения для хранения номера версии в модуле, используется переменная __version__.
Изменим файл setup.py , чтобы нам не приходилось редактировать номер версии в двух местах:
Существует множество систем наименования версий в python обычно рекомендуется использовать PEP386. Можно представить, что обозначение версии состоит из номера мажорного, минорного релизов (номера багфикса при необходимости), разделенных точками. В последней части версии разрешается использовать буквы латинского алфавита. Примеры из официальной документации:
Управление зависимостями
Добавим функциональности нашему проекту. Создадим команду serve которая будет запускать вебсервер отдающий страницу со строкой "Hello world!" генерируемой нашим модулем. Для этого воспользуемся пакетом Flask.
Добавляем файл helloworld/web.py :
И файл helloworld/templates/index.html :
И опишем команду serve в файле setup.py :
Теперь в нашем проекте появилась зависимость от пакета Flask. Без его установки наше приложение не будет правильно работать. За описание зависимостей в файле setup.py отвечает параметр install_requires:
Проверим установку зависимостей обновив наш пакет и работу команды serve:
Управление файлами проекта (MANIFEST.in)
На текущий момент при сборке нашего пакета distutils включает в него только python-файлы. Необходимо включить в него файл helloworld/templates/index.html без которого проект работать не будет.
Чтобы сделать это мы должны сообщить distutils какие еще файлы надо включать в наш проект. Один из способов — это создание файла MANIFEST.in :
Данная команда указывает distutils на включение в проект всех html файлов в директории helloworld/templates .
Также придется обновить setup.py :
Теперь шаблоны будут включены в наш проект.
Создание и запуск тестов
Хорошей практикой считается создание тестов для вашего проекта. Добавим простейшую реализацию, файл tests.py :
И обновим setup.py :
Теперь мы можем произвести предварительное тестирование нашего проекта:
Обратите внимание, что для запуска тестов даже не нужно создание виртуального окружения. Необходимые зависимости будут скачаны в директорию проекта в виде egg пакетов.
Прежде чем вы сможете опубликовать свой проект вам необходимо зарегистрироваться на PyPi. Запишите ваши реквизиты в файле
Все ваш проект готов к публикации. Достаточно ввести соответствующую команду:
Вы не сможете опубликовать пакет helloworld , тк данное имя проекта уже занято.
Читайте также: