Развертывание Приложения с открытым исходным кодом Django с зависимостями

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

def logger(myFunc):
    def new(*args, **keyargs):
        print 'Entering %s.%s' % (myFunc.im_class.__name__, myFunc.__name__)
        return myFunc(*args, **keyargs)

    return new

class C(object):
    def f(self):
        pass
C.f = logger(C.f)
C().f()

Это производит желаемый результат.

, Если Вы хотите обернуть все методы в класс, тогда Вы, вероятно, хотите создать функцию wrapClass, которую Вы могли тогда использовать как это:

C = wrapClass(C)
5
задан Community 23 May 2017 в 11:55
поделиться

2 ответа

Это одно из больших ограничений "многоразового приложения" Django. Неделю или две назад в подкасте «This Week in Django» они говорили об этой точной проблеме. Кажется, что консенсус, и я согласен, заключается в том, что на самом деле решения нет.

Если вы посмотрите на Pynax, который, вероятно, является крупнейшим распределенным проектом Django, вы увидите, что они объединяют приложения со всей системой .

Сам Python имеет несколько дистрибутивов пакетов. Я знаю, что ActiveState работает над запуском другого. Но даже тогда не все приложения django упакованы. Многие из них можно найти только в исходниках bitbucket, github или google. И даже тогда, чтобы получить копию всего этого, требуется, чтобы были установлены Mercurial, git и svn. (blah @ that)

В основном у вас есть 2 варианта:

  1. Включите копию каждой зависимости в свой источник
  2. Включите документацию о том, как пользователи устанавливают данную зависимость

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

Если это интересно, я написал небольшой блог сообщение о сохранении зависимостей в папке вашего проекта (или в SVN), а затем добавление этого пути в путь поиска Python в начале django. ( Управление зависимостями Django через SVN ) Это портит intellisense Komodo Edit, но в остальном все упрощает.

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

Если это интересно, я написал короткое сообщение в блоге о сохранении зависимостей в папке вашего проекта (или в SVN), а затем добавив этот путь к пути поиска Python в начале django. ( Управление зависимостями Django через SVN ) Он портит intellisense Komodo Edit, но в остальном упрощает работу.

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

Если это интересно, я написал короткое сообщение в блоге о сохранении зависимостей в папке вашего проекта (или в SVN), а затем добавив этот путь к пути поиска Python в начале django. ( Управление зависимостями Django через SVN ) Он портит intellisense Komodo Edit, но в остальном упрощает работу.

1
ответ дан 18 December 2019 в 13:16
поделиться

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

Как упомянул Т. Стоун Pinax , проект на основе Django имеет много зависимостей, и они используют pip файлы требований вполне успешно.

13
ответ дан 18 December 2019 в 13:16
поделиться
Другие вопросы по тегам:

Похожие вопросы: