Должен ли я условно требовать simplejson в моем файле setup.py? - PullRequest
3 голосов
/ 15 февраля 2011

Я импортирую simplejson / json условно в свой модуль следующим образом:

try:
    import simplejson as json
except ImportError:
    import json

В моем файле setup.py, однако, я не хочу требовать simplejson, если у пользователя есть json из стандартабиблиотеки.Я мог бы сделать это так:

requires = ['kitchen']
try:
    import simplejson
except ImportError:
    requires.append('simplejson')

setup(..., requires=requires)

Это хорошая практика для файлов setup.py?Должен ли я использовать что-то еще?Должен ли я просто потребовать simplejson?

1 Ответ

3 голосов
/ 15 февраля 2011

Краткий ответ - нет, это не очень хорошая практика.

Одной из ключевых концепций использования distutils, zc.buildout и т. Д. Является повторяемость.Когда вы добавляете такие условия, вы не можете упаковать яйцо, потому что оно будет работать только на некоторых машинах.Когда вы устанавливаете его вручную на каждую машину, различия между simplejson и json могут испортить ваше приложение.Представьте себе некоторые ошибки, о которых вы ничего не знаете и т. Д. Вы должны убедиться, что они работают с обеими библиотеками.Рекомендуется явно требовать не только зависимости, но и точную версию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...