2016-03-19 2 views
1

Я пытался импортировать две C# .dll с помощью IronPython. Один называется m1.sdk.dll, другой называется m1.sdk.something.dll. Но я получил ошибку. В сообщении об ошибке говорится, что он не может найти тип в файле m1.sdk.something.dll.Импортировать файлы с точками имени C# dll в проблемах IronPython

Но они загружаются через clr.AddReferenceToFileAndPath() и импортируются IronPython. Я вижу, что они переносятся через clr.References

Есть ли способ загрузить эти .dll, так что, несмотря на то, что IronPython с именем dotted, посмотрите, как тот же модуль?

import clr 

clr.AddReferenceToFileAndPath("c:\\path_to_file_\\m1.sdk.dll") 
clr.AddReferenceToFileAndPath("c:\\path_to_file_\\m1.sdk.something.dll") 

import m1.sdk 
import m1.sdk.something  # The error occurs here 

* Traceback (самый последний вызов последнего):

Файл "", линия 1, в

ImportError: Нет модуль с именем что-то *

enter image description here

+0

Пожалуйста, добавьте ваш код, а также точные исключения/стеки. –

+0

Я думаю, что python понимает, что они являются одним и тем же модулем, но не являются, он должен подключать модуль в другое время исполнения? –

+0

Вы подтвердили, что и 'm1.sdk.dll', и' m1.sdk.something.dll' фактически содержат объекты в пространствах имен 'm1.sdk' и' m1.sdk.something'? Вы импортируете пространства имен, а не сборки. Нет требования, чтобы сборка должна была определять пространства имен, которые соответствуют имени файла сборки. –

ответ

0

Проблема вы сталкиваетесь, скорее всего, не связаны с именем или сходством двух ссылочных сборок. No module named something произойдет, если нет общедоступных/видимых типов, найденных с пространством имен m1.sdk.something.

+0

Спасибо, Саймон, я проверю файл, который у меня есть. –

+1

Ты был прав Саймон. Отсутствует тип. –

Смежные вопросы