Установка пакетов Python в Windows

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

Я понимаю, что официальным способом установки пакетов является distutils : вы загружаете исходный tarball, распаковываете его и запускаете: python setup.py install , затем модуль автоматически устанавливает себя

Я также знаю о setuptools, который поставляется с хелперным скриптом easy_install . Он использует яйца для распространения, и, насколько я понимаю, построен на вершине distutils и делает то же самое, что и выше, плюс он заботится о любых необходимых зависимостях, все из которых получены из PyPi

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

Наконец, поскольку я нахожусь на машине с Windows, многие пакеты также предлагают бинарные сборки через установщик Windows , особенно те, которые требуют компиляции кода C / Fortran, что в противном случае было бы кошмаром для ручной компиляции на окнах (предполагается, что у вас есть MSVC или MinGW / Cygwin dev со всеми необходимыми настройками библиотек .. тем не менее попытайтесь создать numpy или scipy самостоятельно, и вы поймете!)

Так может кто-то помочь мне разобраться во всем этом и объяснить различия, плюсы и минусы каждого метода. Я хотел бы знать, как каждый отслеживает пакеты (реестр Windows, файлы конфигурации, ..). В частности, как вы будете управлять всеми вашими сторонними библиотеками (иметь возможность перечислять установленные пакеты, отключать / удалять и т. Д.)

2 Solutions collect form web for “Установка пакетов Python в Windows”

Я использую pip, а не в Windows, поэтому я не могу обеспечить сравнение с опцией Windows-installer, просто некоторые сведения о pip:

  • Пип построен поверх настроек setuptools и требует его установки.
  • Pip – это замена (улучшение) для easy_install setuptools. Он делает все, что делает easy_install, и многое другое (убедитесь, что все нужные дистрибутивы могут быть загружены до фактической установки любого из них, чтобы избежать сломанной установки, списка установленных дистрибутивов и версий, удалить, найти PyPI, установить из файла требований с перечислением нескольких дистрибутивов и версии …).
  • В настоящее время Pip не поддерживает установку какой-либо формы прекомпилированных или двоичных дистрибутивов, поэтому любые дистрибутивы с расширениями, требующими компиляции, могут быть установлены только в том случае, если у вас есть соответствующий компилятор. Поддержка установки из двоичных установщиков Windows находится в дорожной карте, но неясно, когда это произойдет.
  • До недавнего времени поддержка Windows в Windows была нечеткой и непроверенной. Благодаря большой работе от Dave Abrahams, pip trunk теперь передает все свои тесты в Windows (и есть постоянный сервер интеграции, помогающий нам обеспечить, чтобы он оставался таким образом), но релиз еще не сделан, включая эту работу. Поэтому более надежная поддержка Windows должна появиться со следующей версией.
  • Все стандартные механизмы установки пакета Python хранят все метаданные об установленных дистрибутивах в файле или файлах рядом с фактическими установленными пакетами. Distutils использует файл distribution_name-XX-pyX.X.egg-info, pip использует аналогично названный каталог с несколькими файлами метаданных. Easy_install помещает весь установленный код Python для распространения внутри своего собственного zipfile или каталога и помещает в него каталог EGG-INFO с метаданными. Если вы импортируете пакет Python из интерактивного приглашения, проверьте значение пакета .__ file__; вы должны найти метаданные для дистрибутива этого пакета.
  • Информация о установленных дистрибутивах хранится только в любом виде глобального реестра с помощью специальных инструментов для работы с ОС, таких как установщики Windows, Apt или RPM. Стандартные инструменты упаковки Python не изменяют или не обращают внимание на эти списки.
  • Pip (или, на мой взгляд, любой инструмент для упаковки Python) лучше всего использовать с virtualenv , что позволяет создавать изолированные мини-среды Python для каждого проекта, в которые вы можете устанавливать пакеты, не затрагивая вашу общую систему. Каждый новый virtualenv автоматически поставляется с установленным в нем пипом.

Еще пара проектов, о которых вы, возможно, захотите узнать (да, есть еще!):

  • distribute – это fork setuptools, в котором есть некоторые дополнительные исправления и функции.
  • distutils2 предназначен для «следующего поколения» упаковки Python. Это (надеюсь) принятие лучших функций distutils / setuptools / distribute / pip. Он разрабатывается самостоятельно и еще не готов к использованию, но в конечном итоге должен заменить distutils в стандартной библиотеке Python и стать де-факто решением для упаковки Python.

Надеюсь, все это помогло прояснить что-то! Удачи.

Я использую windows и python. Это несколько разочаровывает, потому что pip не всегда работает, чтобы устанавливать вещи. Python движется к pip, поэтому я все еще использую его. Пип хорош, потому что вы можете удалить элементы и использовать

 pip freeze > requirements.txt pip install -r requirements.txt 

Еще одна причина, по которой мне нравится pip, – это виртуальные среды, такие как venv с python 3.4. Я нашел, что venv намного проще использовать в окнах, чем virtualenv.

Если вы не можете установить пакет, вам нужно найти для него двоичный файл. http://www.lfd.uci.edu/~gohlke/pythonlibs/

Я нашел эти двоичные файлы очень полезными.

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

 pip install wheel wheel convert path\to\binary.exe pip install converted_wheel.whl 

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

  • Почему «python setup.py sdist» создает нежелательные «PROJECT-egg.info» в корневом каталоге проекта?
  • Изменение интерпретатора точки входа console_script для упаковки
  • Запретить установку пакета на старых версиях Python
  • Непосредственно вызовите функцию setuptools distutils или setuptools () с именем / параметрами команды, без разбора командной строки?
  • easy_install с pypy, в то время как Python установлен
  • Настройка Python, установите один модуль в качестве дополнительного модуля другого модуля?
  • easy_install lxml на Python 2.7 на Windows
  • setup.py: запустите build_ext перед чем-либо еще
  •  
    Interesting Posts for Van-Lav

    Ошибка синтаксиса Python – In и Not In List

    как отменить изображение цветной карты на скалярные значения

    Django charfield создает значение по умолчанию

    Selenium (с python), как изменить стиль css элемента

    Могут ли устанавливать установки PP, не указанные в setup.py во время установки?

    python конвертировать datetime форматированную строку в секунды

    Почему Pandas Concatenation (pandas.concat), так что память неэффективна?

    Для петли пропуская некоторые вещи! питон

    Как построить сложную продолжительность события (диаграммы Ганта) с использованием Python Pandas?

    Более pythonic способ итерации списка, исключая элемент для каждой итерации

    Python NameError: имя 'include' не определено

    Получение "msg: Не удалось найти требуемый исполняемый файл easy_install" при попытке вызвать бродячий экземпляр с невозможным

    Файлы wav для Python Scipy FFT

    Как отобразить полный выход в Jupyter, а не только последний результат?

    Почему добавление атрибутов к уже созданному объекту разрешено?

    Python - лучший язык программирования в мире.