Форум сайта python.su
0
Доброго времени суток.
Не получается грамотно реализовать загрузку библиотеки dll из модуля расположенного в пакете. Кто имел положительный опыт, прошу оказать помощь. Спасибо.
Структура проекта следующая:
main.py mypackage/ __init__.py mymodule.py mylib.dll
Traceback (most recent call last): File "D:\test\main.py", line 3, in <module> mymodule.test() File "D:\test\mypackage\mymodule.py", line 5, in test dll = CDLL('mylib.dll') File "C:\Python32\lib\ctypes\__init__.py", line 340, in __init__ self._handle = _dlopen(self._name, mode) WindowsError: [Error 126] Не найден указанный модуль
dll = CDLL('mylib.dll')
dll = CDLL(r'mypackage/mylib.dll')
Отредактировано belyal (Май 14, 2012 16:30:16)
Офлайн
14
У модуля есть
__file__
Отредактировано Андрей Светлов (Май 14, 2012 17:17:31)
Офлайн
0
Андрей СветловЯ через __name__ сделал, но мне такое решение не нравится.
У модуля есть
__file__
Офлайн
14
зачем вам __name__, если нужен полный путь к dll?
Офлайн
0
Переделал на __file__, но сути это не поменяло.
Офлайн
14
Не понимаю ваших затруднений.
import ctypes
import os.path
import sys
here = os.path.dirname(__file__ if __file__ else sys.argv[0])
dllname = os.path.join(here, 'mylib.dll')
dll = ctypes.CDLL(dllname)
Офлайн
0
Спасибо.
Офлайн