При попытке импортировать модуль с тем же именем, поскольку встроенный модуль вызывает ошибку импорта

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

//--- size of static_assertion array is negative if condition is not met
#define STATIC_ASSERT(condition) \
    typedef struct { \
        char static_assertion[condition ? 1 : -1]; \
    } static_assertion_t

//--- ensure structure fits in 
STATIC_ASSERT(sizeof(mystruct_t) <= 4096);

67
задан davidism 19 July 2015 в 16:28
поделиться

1 ответ

Вы захотите прочитать об абсолютном и относительном импорте , который решает именно эту проблему. Использование:

from __future__ import absolute_import

Используя это, любое неукрашенное имя пакета всегда будет относиться к пакету верхнего уровня. Затем вам нужно будет использовать относительный импорт ( из .email import ... ) для доступа к вашему собственному пакету.

ПРИМЕЧАНИЕ: Вышеупомянутый из ... строку необходимо поместить в любые файлы Python .py 2.x выше import ... строки, которые вы используете. В Python 3.x это поведение по умолчанию, поэтому в нем больше нет необходимости.

94
ответ дан 24 November 2019 в 14:42
поделиться
Другие вопросы по тегам:

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