У меня проблема с загрузкой внешней dll с использованием Python через Python для .NET. Я пробовал разные методологии после stackoverflow и аналогичных. Я попытаюсь обобщить ситуацию и описать все шаги, которые я сделал.Python for .NET
У меня есть dll, названный так, например. Test.NET.dll. Я проверил с dotPeek, и я вижу, щелкнув по нему, x64 и .NET Framework v4.5. На моем компьютере я установил .Net Framework 4.
Я также установил Python для .NET по-разному. Я думаю, что лучший из них - скачать .whl с этого сайта LINK. Я загрузил и установил: pythonnet-2.0.0.dev1-cp27-none-win_amd64.whl. Я могу представить, что он будет работать для .NET 4.0 с Требуется Microsoft .NET Framework 4.0.
После того, как я установил все, что я могу сделать следующие команды:
>>> import clr
>>> import System
>>> print System.Environmnet.Version
>>> print System.Environment.Version
4.0.30319.34209
кажется работа. Затем я попытался загрузить мою DLL набрав следующие команды:
>>> import clr
>>> dllpath= r'C:\Program Files\API\Test.NET'
>>> clr.AddReference(dllpath)
Traceback (most recent call last):
File "<pyshell#20>", line 1, in <module>
clr.AddReference(dllpath)
FileNotFoundException: Unable to find assembly 'C:\Program Files\API\Test.NET'.
at Python.Runtime.CLRModule.AddReference(String name)
Я также попытался добавить «.dll» в конце пути, но ничего не изменилось. Затем я также пробовал разные решения, как описано в LINK, LINK, LINK и многое другое .... К сожалению, он не работает, и я получаю разные ошибки. Я знаю, что существует IronPython, но я пытался избежать его использования.
Благодарим за помощь!
1. Вы пробовали с FindAssembly? 2. Вы исследовали ошибки из окна просмотра привязки сборки (Fuslogvw.exe)? 3. Ваша сборка 64-разрядная, тоже Python 64-битная? – denfromufa