Можем ли мы пролить свет на то, как работает упаковка и импорт Python?

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

Я хотел бы собрать здесь исчерпывающий обзор того, как import , управление пакетами и распространение работает на python, так что этот вопрос становится окончательным объяснением всей магии, которая происходит под капотом. Хотя я понимаю общий уровень вопроса, эти вещи настолько взаимосвязаны, что какой-либо конкретный ответ не решит основную проблему: понять, как все работает, что устарело, что актуально, какие есть альтернативы для той же задачи, что причуды.

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

  • PyPI
  • setuptools / Распространить
  • distutils
  • яйца
  • egg-link
  • pip
  • zipimport
  • site.py
  • site-packages
  • . pth files
  • virtualenv
  • обработка скомпилированных модулей в яйцах (с установкой и без нее через easy_install)
  • использование get_data ()
  • pypm
  • bento
  • PEP 376
  • сырный магазин
  • eggclaable

Возможно, хорошая идея - связать с другими ответами. Как я уже сказал, этот вопрос предназначен для общего обзора.

39
задан Mogsdad 15 January 2018 в 13:46
поделиться