2015-01-18 3 views
2

Я пытаюсь вызвать существующую C# dll из Python. Я пробовал как Python для .NET, так и Iron Python. Я положил dll (LogAccess.dll) прямо под корень Python. В случае Python для .NET, только в каталоге Python27. В случае IronPython, под IPy27.Вызвать C# dll из Python

import sys 
import clr 
clr.AddReference("LogAccess") 
from LogAccess import LogAccess 

в этой точке, возникает ошибка. Это та же ситуация в Python для .NET и IronPython.

Traceback (самый последний вызов последнего): Файл "Без названия", строка 4 clr.AddReference ('LogAccesss') FileNotFoundException: Не удается найти сборку 'LogAccesss. \ u5834 \ u6240 Python.Runtime.CLRModule.AddReference (имя строки)

Что не так? Есть ли какие-либо условия для создания C# dll? Есть ли какое-либо правило, в котором размещается dll? я wnat знать отношения между MODULENAME, имен и основного имени программы/

+1

Не могли бы вы попробовать 'clr.AddReferenceToFileAndPath' в IronPython и абсолютный путь к' LogAccess.dll'? Это также гарантирует, что содержащая папка добавляется к пути поиска. Вы также можете посмотреть, что сборка заблокирована и не загружена по этой причине. –

ответ

2

Первый Проверьте Wether вашей одной линии

import clr 

не дает какую-либо ошибку

если нет, то попробуйте положить вам файл внутри python27/Lib/Site-packages и попробуйте то же самое.

Или же вы можете указать путь

import sys 
sys.path.append("yourDllPath") 

затем попробуйте импортировать, как вы делаете

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