setup.py install_requires встроенный пакет: включить или пропустить? - PullRequest
0 голосов
/ 24 октября 2019

У меня есть пакет Python, который я сделал. Он использует datetime в нескольких местах. Я заметил, что при новой установке Python я могу без проблем выполнить import datetime. Таким образом, Python поставляется с datetime встроенным.

Если я добавлю datetime в мой setup.py в качестве одного из элементов в install_requires, он, похоже, загружает пакет pypi datetime,хотя встроенный пакет уже доступен. В некоторых случаях, например, с multiprocessing, пакет pypi может потребовать дополнительных вещей (в случае pypi multiprocessing он требует установки gcc-c++ на моем CentOS, в то время как встроенный multiprocessing не имеет такоготребования).

Вопросы:

  • Стоит ли включать встроенные пакеты в install_requires, если я их использую?
  • Существует ли более простой способ узнать, какие пакетывстроенный и что не иначе, чем создание нового virtualenv и попытки импортировать вещи?
  • Кто владеет версиями этих встроенных пакетов pypi? Это какой-то случайный человек, или эти проверенные пакеты предоставлены основной командой python? (Я знаю, что произвольные пакеты могут быть предоставлены случайными людьми, но я не могу понять, верно ли это для встроенных пакетов, которые также доступны в pypi.)

1 Ответ

2 голосов
/ 24 октября 2019

похоже, что он загружает пакет pypi datetime

Не совсем. Он загружает пакет с именем DateTime с именем верхнего уровня DateTime, а не datetime.

Стоит ли включать встроенные пакеты в install_requires, если я их использую?

Нет. install_requires предназначен для перечисления внешних, сторонних пакетов, а не встроенных, не стандартных.

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

Один - datetime, другой - DateTime.

Кто владеет версиями этих встроенных пакетов pypi?

На странице https://pypi.org/project/DateTime/ имя автора: Zope Foundation and Contributors. И список текущих сопровождающих. Домашняя страница в списке https://github.com/zopefoundation/DateTime

...