Согласно ответу Jon, было бы полезно знать то, что находится в LoaderExceptions
. Вместо этой информации я думаю, что могу рисковать предположением. От MSDN:
, Если блок имеет зависимости, метод ReflectionOnlyLoad не загружает их. Если необходимо исследовать их, необходимо загрузить их сами.
необходимо присоединить обработчик к AppDomain.ReflectionOnlyAssemblyResolve
, чтобы помочь CLR загрузить любые зависимости блока, который Вы загружаете. Вы сделали это?
Вы можете использовать флаг -m интерпретатора python для запуска модулей в подпакетах (или даже пакетах в 3.1.).
Да, нормально. Если вы хотите выполнить модуль, который также является частью пакета (что само по себе странная вещь), вам необходимо иметь абсолютный импорт. Когда вы выполняете модуль, он с точки зрения интерпретатора не является частью пакета, а является модулем __ main __
. Таким образом, он не будет знать, где находятся соответствующие пакеты.
Стандартный способ сделать это - иметь функции в пакетах и отдельные исполняемые сценарии, вызывающие функции, поскольку это позволяет вам размещать исполняемые сценарии вне модуля. , например в / usr / bin