'setup.py тестируют' местоположение установки яйца?

Что происходит, здесь назван агрегат инициализация. Вот является (сокращенное) определение агрегата от раздела 8.5.1 из спецификации ISO:

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

Теперь, с помощью {0} для инициализации агрегата как это в основном прием к 0 вся вещь. Это вызвано тем, что при использовании совокупной инициализации Вы не должны определять всех участников , и спецификация требует, чтобы все неуказанные участники были инициализированным значением по умолчанию, что значит набор для 0 для простых типов.

Вот соответствующая кавычка от спецификации:

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

struct S { int a; char* b; int c; };
S ss = { 1, "asdf" };

инициализирует ss.a с 1, ss.b с "asdf", и ss.c со значением выражения формы int(), то есть, 0.

можно найти полную спецификацию по этой теме здесь

7
задан amrox 3 December 2009 в 22:25
поделиться

1 ответ

Просто взглянув на исходный код (setuptools / command / tests.py), не похоже, что тест setup.py не предназначен для установки чего-либо по дизайну (это тестирование, поэтому зачем что-то класть в пакеты-сайты?). Он использует fetch_build_egg (setuptools / dist.py) для получения яиц, что фактически выполняет локальную easy_install. Я подозреваю, что вы не можете банально заставить test делать то, что вы хотите.

Примечания / идеи: Мой опыт работы с инструментами настройки показывает, что в нем есть ошибки и недокументированное поведение. (Одна особенно неприятная ошибка, которую я обнаружил, заключалась в том, что он не входил в каталоги с мягкими ссылками, в отличие от distutils).

Я бы рекомендовал либо A) не делать этого. :), Б) вручную установить файл, вызвав пакет easy_install. или C) заглянуть в систему setuptools и, возможно, добавить свою собственную команду. Это не так уж сложно понять, и знание этого очень поможет, когда вы получите будущие заминки с инструментами настройки.

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

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