Python: относительный импорт означает, что Вы не можете выполнить подпакет отдельно?

Согласно ответу Jon, было бы полезно знать то, что находится в LoaderExceptions. Вместо этой информации я думаю, что могу рисковать предположением. От MSDN:

, Если блок имеет зависимости, метод ReflectionOnlyLoad не загружает их. Если необходимо исследовать их, необходимо загрузить их сами.

необходимо присоединить обработчик к AppDomain.ReflectionOnlyAssemblyResolve, чтобы помочь CLR загрузить любые зависимости блока, который Вы загружаете. Вы сделали это?

7
задан Ram Rachum 18 October 2009 в 19:12
поделиться

2 ответа

Вы можете использовать флаг -m интерпретатора python для запуска модулей в подпакетах (или даже пакетах в 3.1.).

3
ответ дан 7 December 2019 в 10:04
поделиться

Да, нормально. Если вы хотите выполнить модуль, который также является частью пакета (что само по себе странная вещь), вам необходимо иметь абсолютный импорт. Когда вы выполняете модуль, он с точки зрения интерпретатора не является частью пакета, а является модулем __ main __ . Таким образом, он не будет знать, где находятся соответствующие пакеты.

Стандартный способ сделать это - иметь функции в пакетах и ​​отдельные исполняемые сценарии, вызывающие функции, поскольку это позволяет вам размещать исполняемые сценарии вне модуля. , например в / usr / bin

4
ответ дан 7 December 2019 в 10:04
поделиться
Другие вопросы по тегам:

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