Я пытаюсь программно определить путь к включенному / установленному файлу DLL для определенного пакета.Я прочитал множество SO страниц, но не могу найти никакого решения.Возможно, я что-то пропустил, и это невозможно?
Пакет capstone и был установлен вручную из источников с привязками python3 в Windows через Cygwin .Все работает.
# python3 -c "import os,inspect,capstone; print(os.path.dirname(inspect.getfile(capstone)))"
/usr/lib/python3.6/site-packages/capstone-4.0.0rc1-py3.6.egg/capstone
# python3 -c "import capstone; print(capstone._lib)"
capstone.dll
- Указанный выше путь к файлу
*.egg
, но этот путь на самом деле не существует,
, если вы не разархивируете файл. - В файле EGG местоположение находится в
./*.egg/capstone/lib/capstone.dll
- Но в ОС реальное местоположение системы
capstone.dll
находится в:
/usr/lib/python3.6/site-packages/capstone/lib
Как получить истинный путь (3) в Python3?
РЕДАКТИРОВАТЬ:
Возможно это может быть полезным?Но я придумала эту уродливую вещь, которая могла легко сломаться, так что надеялась на более питонический путь.
# python3 -c "import capstone; print('DLL path: %s' % capstone._path_list[4] + '/' + capstone.__name__ + '/lib/' + capstone._lib)"
DLL path: /usr/lib/python3.6/site-packages/capstone/lib/capstone.dll