modify setup python что делать

Как установить или удалить модуль Python?

Лучший и рекомендуемый способ установки модулей Python — использовать pip, менеджер пакетов Python.

Если у вас установлен Python 2> = 2.7.9 или Python 3> = 3.4 с python.org, у вас уже есть pip и setuptools, но вам потребуется обновить его до последней версии:

Если вы используете установку Python в Linux, которая управляется менеджером системных пакетов (например, «yum», «apt-get» и т. Д.), И вы хотите использовать менеджер системных пакетов для установки или обновления pip, то смотрите: https://packaging.python.org/guides/installing-using-linux-tools/

В противном случае:

Загрузите файл get-pip.py с веб-сайта https://bootstrap.pypa.io/get-pip.py. Запустите python get-pip.py. Это установит или обновит пункт.

Теперь вы можете использовать pip для установки пакетов Python. Например, чтобы установить последнюю версию «SomeProject»:

Чтобы установить конкретную версию:

Чтобы установить больше или равно одной версии и меньше другой:

Вы можете удалить большинство установленных пакетов Python, используя pip. Для получения дополнительной информации об удалении из pip перейдите по ссылке : https://pip.pypa.io/en/stable/reference/pip_uninstall/. Например, если у вас установлен пакет numpy и вы хотите удалить его, введите следующее:

Однако есть некоторые исключения. Эти пакеты не могут быть легко удалены с помощью pip:

1. Чистые пакеты distutils, установленные с помощью python setup.py install, которые не оставляют метаданных, чтобы определить, какие файлы были установлены.

2. Разработка сценариев, установленных Python setup.py.

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

Если вы не знаете список всех файлов, вы можете переустановить его с параметром —record и взглянуть на список, который он создает. Для записи списка установленных файлов вы можете использовать:

Источник

Как устанавливать пакеты в Python — с PIP и без

modify setup python что делать

modify setup python что делать

modify setup python что делать

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

Установка 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 и пишем:

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

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

python setup.py install

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

modify setup python что делать

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

Установка 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 и пишем:

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

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

python setup.py install

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Источник

klen.github.io

Одна из действительно полезных вещей в python — это система скриптов установки. Любой, серьезно увлекающийся python-программированием разработчик рано или поздно сталкивается с ней. Но из-за гибкости инструментария скриптов установки, их документация весьма раздута. На текущий момент имеется набор утилит (setuptools, distutils, distribute) выполняющих одинаковые задачи.

modify setup python что делать

В данной статье я на конкретных примерах покажу как создать и настроить простой python-пакет.

Наш проект будет иметь следующую функциональность:

Создаем структуру проекта

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

Получаем следующую структуру:

Теперь отредактируем файл: helloworld/core.py и добавим логику нашего приложения (получение и вывод строки «Hello World!»):

Редактируем мета-информацию (setup.py)

Заполним файл описания README.rst :

Теперь отредактируем файл setup.py :

Убедитесь, что в вашей системе доступны setuptools, в противном случае установите python-пакет distribute

Этих операций достаточно, чтобы собрать пакет дистрибьюции. Выполните команду сборки:

Виртуальное окружение

Virtualenv — пакет применяемый для создания изолированного python-окружения. Используем его для тестирования нашего проекта.

Создадим окружение env:

Команда создаст директорию env внутри нашего проекта и установит туда python, pip и distribute. Произведем в него установку нашего проекта.

И протестируем его работоспособность:

Все работает. Осталось добавить поддержку команды helloworld в консоли.

Создание команд

Для создания команды helloworld изменим файл setup.py :

В параметре entry_points мы задаем словарь с «точками вызова» нашего приложения. Ключ console_scripts задает список создаваемых исполняемых скриптов (в Windows это будут exe-файлы). В данном случае мы указали создание исполняемого скрипта helloworld при вызове которого будет запускаться метод print_message из модуля helloworld.core.

Переустановим модуль в наше окружение и проверим работу созданного скрипта (для этого прийдется активировать наше окружение):

Похоже все работает.

Работа с версиями

Существует множество систем наименования версий в python обычно рекомендуется использовать PEP386. Можно представить, что обозначение версии состоит из номера мажорного, минорного релизов (номера багфикса при необходимости), разделенных точками. В последней части версии разрешается использовать буквы латинского алфавита. Примеры из официальной документации:

Управление зависимостями

Добавим функциональности нашему проекту. Создадим команду serve которая будет запускать вебсервер отдающий страницу со строкой «Hello world!» генерируемой нашим модулем. Для этого воспользуемся пакетом Flask.

Добавляем файл helloworld/web.py :

И файл helloworld/templates/index.html :

И опишем команду serve в файле setup.py :

Теперь в нашем проекте появилась зависимость от пакета Flask. Без его установки наше приложение не будет правильно работать. За описание зависимостей в файле setup.py отвечает параметр install_requires:

Проверим установку зависимостей обновив наш пакет и работу команды serve:

Открыв браузер по адресу http://127.0.0.1:5000 вы должны увидеть нашу страницу.

Управление файлами проекта (MANIFEST.in)

На текущий момент при сборке нашего пакета distutils включает в него только python-файлы. Необходимо включить в него файл helloworld/templates/index.html без которого проект работать не будет.

Чтобы сделать это мы должны сообщить distutils какие еще файлы надо включать в наш проект. Один из способов — это создание файла MANIFEST.in :

Также придется обновить setup.py :

Теперь шаблоны будут включены в наш проект.

Создание и запуск тестов

Хорошей практикой считается создание тестов для вашего проекта. Добавим простейшую реализацию, файл tests.py :

Теперь мы можем произвести предварительное тестирование нашего проекта:

Обратите внимание, что для запуска тестов даже не нужно создание виртуального окружения. Необходимые зависимости будут скачаны в директорию проекта в виде egg пакетов.

Публикация пакета на pypi.python.org

Прежде чем вы сможете опубликовать свой проект вам необходимо зарегистрироваться на PyPi. Запишите ваши реквизиты в файле

Все ваш проект готов к публикации. Достаточно ввести соответствующую команду:

Источник

Что делать, если нужный вам модуль поддерживает только Python 2: пошаговое руководство

Авторизуйтесь

Что делать, если нужный вам модуль поддерживает только Python 2: пошаговое руководство

modify setup python что делать

Перед вами небольшая инструкция по решению довольно распространенной проблемы: при работе над проектом оказывается, что один из необходимых вам модулей не поддерживает Python 3. Для примера взята клиентская библиотека для Qualys (средство обеспечения безопасности). Вот что вам следует сделать:

0. Удостовериться, что этот вопрос еще не решен

Прежде чем начать, проверьте, не сталкивался ли кто-то ранее с такой же проблемой, исследуйте GitHub. Посмотрите — может быть, на PyPi найдется подходящий пакет, в котором содержатся обновления для Python 3.

1. Сделать форк

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

modify setup python что делать

Итак, откройте основной проект на GitHub. Прежде чем вносить любые изменения, обязательно создайте его форк, затем скачайте или клонируйте репозиторий и создайте новую ветку. Говорящим названием для неё будет, например, «python3».

modify setup python что делать

Если вам неясно, как проделать эти действия, читайте наше руководство по Git для новичков.

2. Исправить операторы print

Первое, с чем нужно разобраться до решения проблем с импортированием — это самые обычные операторы вывода. Старые операторы print без скобок — одно из самых распространенных препятствий, с которым можно столкнуться в контексте перехода от Python 2 к Python 3. В третьем шаге мы будем использовать пакет Python-Modernize, облегчающий этот переход, но его работа не затронет README, документацию и некоторые другие файлы. Чтобы найти абсолютно все старые операторы print в пределах модуля, воспользуйтесь рекурсивным поиском по вложенным директориям:

3. Провести тесты

«Лучший» способ проверить совместимость Python 2 и 3 — через полное тестирование и CI сервисы вроде Circle, Snap или Travis. Но вот незадача — для модернизируемого вами модуля никаких тестов нет. И у вас остается два варианта:

Если вы сомневаетесь, что второй вариант может вам чем-то помочь, прочитайте нашу статью о статическом анализаторе.

Статический анализ. Установите Python-Modernize:

Сначала запустите его в режиме info:

Это позволит получить общее представление о том, какие изменения будут внесены. Все устраивает? Тогда запускайте процесс изменений следующей командой:

Затем сделайте из них отдельный коммит.

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

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

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

4. Обновить setup.py

Откройте setup.py и посмотрите, какие изменения в него нужно внести, чтобы уверенно заявлять, что рассматриваемый нами модуль теперь поддерживает Python 3:

На что точно стоит обратить внимание:

Посмотрим, что получилось:

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

Pip позволяет вам устанавливать необходимое не только из PyPi, но и прямо из репозитория Git. Вы можете указать конкретную ветку, используя символ @. Параметр egg= используется, чтобы передать Pip имя пакета.

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

6. Отправить пулл реквест

Теперь нужно поделиться своей работой с автором и сообществом Python на GitHub. Придерживайтесь следующих правил общения:

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

Источник

Модули Python: Создание, импорт и совместное использование

Вступление

Создание модуля

Основы

На самом деле в создании модуля Python нет особой философии, поскольку файлы с суффиксом .py представляют собой модуль. Хотя не каждый файл Python предназначен для импорта в виде модуля. Файлы Python, которые используются для запуска в качестве автономного приложения Python (файлы верхнего уровня), обычно предназначены для запуска в виде скриптов, и их импорт фактически запускает команды в скрипте.

Модули, предназначенные для импорта другим кодом, не будут выполнять какой-либо код, а только предоставлять его имена верхнего уровня в качестве атрибутов импортируемому объекту. Также можно разработать двухрежимный код модули Python, которые можно было бы использовать как для импорта, так и для запуска в качестве скрипта верхнего уровня.

В то время как правила создания модулей довольно расслаблены, существует одно правило именования модулей. Поскольку имена файлов модулей становятся именами переменных в Python при импорте, не разрешается называть модули зарезервированными словами Python. Например, a for.py модуль может быть создан, но не может быть импортирован, потому что “for” – это зарезервированное слово. Давайте проиллюстрируем то, что мы уже упоминали, на примере “Привет, мир!”.

‘my_module.py’ разработан как модуль, код которого может быть импортирован и повторно использован в других файлах Python. Это видно по его содержанию: он не требует никаких действий, просто определяет функции и переменные. В отличие от этого, ‘my_script.py’ разработан как скрипт верхнего уровня, который запускает программу Python-он явно вызывает функцию hello_printer и выводит значение переменной на экран.

Давайте запустим ‘my_script.py-файл в терминале:

Как отмечалось ранее, важным выводом из этого первого базового примера является то, что имена файлов модулей важны. После импорта они становятся переменными/объектами в модуле импортера. Все определения кода верхнего уровня в модуле становятся атрибутами этой переменной.

В следующем разделе мы сначала рассмотрим “общую картину” многофайловых программ Python, а затем в “двойном режиме” файлы Python.

Архитектура программы

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

На рис. 1 показан пример структуры программы с тремя типами файлов:

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

Давайте проиллюстрируем это на примере кода:

В приведенном выше примере ‘top_module.py’-это модуль верхнего уровня, который будет запускаться пользователем, и он импортирует инструменты из других модулей через ‘module1.py”. module1 и module2 являются пользовательскими модулями, в то время как модуль ‘math’ импортируется из стандартной библиотеки Python. При запуске скрипта верхнего уровня мы получаем:

Двухрежимный код

Как упоминалось ранее, файлы Python также могут быть разработаны как импортируемые модули, так и скрипты верхнего уровня. То есть при запуске модуль Python будет работать как автономная программа, а при импорте-как импортируемый модуль, содержащий определения кода.

Вот пример двухрежимного кода:

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

Использование модуля

Инструкции по импорту

Это позволит импортировать все имена (переменные и функции) из module2.py файл. Такой подход не рекомендуется из – за возможного дублирования имен-импортированные имена могут перезаписать уже существующие имена в модуле импортера.

Путь Поиска модуля

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

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

/.bash_profile файлам, где ваши каталоги объединены знаком двоеточия (“:”).

В любом случае параметры PYTHONPATH и .path позволяют более постоянно изменять путь поиска. Важно знать, что Python сканирует строку пути поиска слева направо, поэтому модули в самых левых перечисленных каталогах могут перезаписывать те, которые имеют то же имя в самой правой части. Обратите внимание, что пути поиска модулей необходимы только для импорта модулей из разных каталогов.

Как показано в следующем примере, пустая строка в начале списка предназначена для текущего каталога:

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

Перезагрузка модуля

Вот вам пример. Давайте повторно использовать приведенный выше код в ‘my_module.py’, импортируйте его в интерпретатор Python, затем измените файл и повторно импортируйте его снова.

Функция reload изменяет модуль на месте. То есть, не затрагивая другие объекты, которые ссылаются на импортированный модуль. Вы можете заметить, что функция также возвращает сам модуль, давая его имя и путь к файлу. Эта функция особенно полезна на этапе разработки, но также и в более крупных проектах.

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

Пакеты модулей

При импорте имен модулей вы фактически загружаете файлы Python, хранящиеся где-то в вашей файловой системе. Как упоминалось ранее, импортированные модули должны находиться в каталоге, который указан в пути поиска вашего модуля ( sys.path ). В Python есть нечто большее, чем просто “импорт имен” – вы действительно можете импортировать целый каталог, содержащий файлы Python, как пакет модуля . Этот импорт известен как package imports .

Итак, как вы импортируете пакеты модулей? Давайте создадим каталог с именем ‘mydir’, который включает в себя ‘mod0.py’ модуль и два подкаталога ‘subdir1’ и ‘subdir2’, содержащие ‘mod1.py-и …mod2.py – модули соответственно. Структура каталогов выглядит следующим образом:

Обычный подход, объясненный до сих пор, состоял в том, чтобы добавить пути ‘mydir’, ‘subdir1’ и ‘subdir2’ к пути поиска модуля ( sys.path ), чтобы иметь возможность импортировать ‘mod0.py’, ‘mod1.py-и …mod2.py”. Это может стать большим накладным расходом, если ваши модули распределены по многим различным подкаталогам, что обычно и происходит. В любом случае, импорт пакетов здесь, чтобы помочь. Они работают с импортом имени самой папки.

Эта команда, например, не разрешена и приведет к Неверный синтаксис ошибка:

Правильный способ сделать это-установить только каталог контейнера “/Users/Code/Projects/” в пути поиска модуля (добавив его в переменную среды PYTHONPATH или перечислив в файле .pth ), а затем импортировать модули с помощью точечного синтаксиса. Это некоторые допустимые импортные операции:

Вы, вероятно, уже замечали ранее, что некоторые каталоги Python включают в себя __init__.py файл. На самом деле это было требование в Python2.x, чтобы сообщить Python, что ваш каталог является пакетом модулей. __init__.py file также является обычным файлом Python, который запускается всякий раз, когда этот каталог импортируется, и подходит для инициализации значений, например для подключения к базе данных.

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

Мы продемонстрируем один полезный случай на примере:

Относительный импорт-это огромная тема, которая может занять целую главу книги. Они также сильно отличаются между версиями Python2.x и 3.x. На данный момент мы показали только один полезный случай, но должно быть еще больше, чтобы следить за ним в отдельных сообщениях в блоге.

Отправка пакета в PyPI

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

Например следующая строка загрузит и установит библиотеку Numpy для научных вычислений:

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

Вывод

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

Существует много информации на эту тему, и мы не смогли охватить все в этом посте, так что вы, возможно, не сможете выполнить все эти шаги и представить официальный пакет в течение времени чтения этого поста. Тем не менее, каждый шаг должен быть кратким введением, чтобы направлять вас на вашем пути обучения.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *