在Ubuntu上以python导入dll

Fal*_*gel 2 python dll ubuntu ironpython

我在Ubuntu安装的服务器上使用python 2.6.5。

我需要为我们的应用程序集成一个API,在这种情况下,我需要使用API​​提供者提供给我的DLL。他们约API集成的代码示例是用Visual Basic编写...我做了对谷歌搜索,发现使用的一些例子ctypes,我尝试使用cdllpydll,这引起了以下错误......

OSError:/home//some.dll:无效的ELF标头

一种可能性是使用IronPython,但是我对Ironpython的了解不多,所以我不确定它是否可以完全满足我的需求。

是否有任何可用的模块可以让我在python上使用该dll(或我不喜欢的模块)。升级我的python版本很难吗?

小智 5

DLL可能是Windows的生物,但如果DLL是“纯.NET”并且不使用Windows特定的可执行文件等,则它可以通过Mono在Linux中正常工作。(mono ipy.exe)。

Ironpython的系统和类似的Windows模块经过定制,可在操作系统方面不可知(未经测试)。

我已经在Ubuntu中成功运行了NHibernate,FluentNHibernate,log4net和其他一些常用的DLLS。

import clr
import sys
sys.path.append(os.path.abspath('./DLL')) #where your dlls are
clr.AddReference('System')
clr.AddReference('FluentNHibernate')
from FluentNHibernate.Cfg.Db import PostgreSQLConfiguration
Run Code Online (Sandbox Code Playgroud)

关键似乎在于以这种方式导入DLL。如果一个dll导入另一个(fluentnhibernate导入nhibernate),则不需要导入例如Nhibernate。