Импорт DLL в Python на Ubuntu - PullRequest
       45

Импорт DLL в Python на Ubuntu

2 голосов
/ 24 октября 2011

Я использую python 2.6.5 на инсталлированном сервере Ubuntu.

Мне нужно интегрировать API для нашего приложения, в этом случае мне нужно было использовать DLL, предоставленную мне провайдером API.Их пример кода об интеграции API написан на Visual Basic ... Я сделал поиск в Google и нашел несколько примеров использования ctypes, и я пытаюсь использовать cdll и pydll, что вызвало следующую ошибку ...

OSError: /home//some.dll: недопустимый заголовок ELF

Одна возможность - использовать IronPython, но у меня нет много информации о Ironpython, поэтому яне уверен, что он полностью удовлетворит мои потребности ..

Есть ли какой-нибудь модуль, который позволяет мне использовать эту dll на python (или все, что мне не хватает в exixting).Трудно обновить мою версию Python?

Ответы [ 2 ]

5 голосов
/ 21 февраля 2015

DLL могут быть существами Windows, но если DLL является «чистым .NET» и не использует исполняемые файлы, специфичные для Windows и т. Д., То она может часто работать в Linux через Mono..несколько других часто используемых DLLS в Ubuntu.

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

Ключ, похоже, заключается в том, чтобы импортировать DLL таким образом.Если dll импортирует другую (fluentnhibernate импортирует nhibernate), вам не нужно импортировать Nhibernate, например.

3 голосов
/ 24 октября 2011

DLL являются существами Windows.Единственный способ использовать DLL - это использовать сборку Python для Windows.Вы сможете запустить Windows Python в Ubuntu, установив Windows на виртуальную машину .Вы также можете запустить его, используя Wine .

Альтернатива, конечно, спросить вашего провайдера API, есть ли у него версия API для Linux.

...