Форум программистов, компьютерный форум, киберфорум
Python
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
5 / 5 / 0
Регистрация: 05.04.2016
Сообщений: 385
1

Портативная библиотека

14.05.2018, 14:17. Просмотров 792. Ответов 26
Метки нет (Все метки)

Здравствуйте.
имеется крупный проект
один из используемых модулей - PyAL (OpenAL для Python)
без установки OpenAL SDK с официального сайта запускаться не хочет (файл __init__ в вышеназванной библиотеке не находит OpenAL32.dll), но установка требует права администратора, а там, где мне нужно сдавать проект - прав администратора нет, как, собственно говоря, и установленного OpenAL SDK, вопрос: возможно ли как то её носить с собой? (на данный момент Python ношу с собой в папке с проектом, к примеру)
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.05.2018, 14:17
Ответы с готовыми решениями:

Портативная БД
Требуется портативная бд со следующими характеристиками - Портативная и локальная бд -...

Портативная кофеварка
Я свою жизнь не представляю без кофе, но покупать сочно приготовленное кофе из стиков уже порядком...

Портативная зарядка 5В Li-ion
Зравствуйте, загорелся желанием сделать портативную зарядку из li ion аккумуляторов. В общем...

Нужна портативная версия 7-64 RU
Всем привет! Нужна портативная версия 7-64 RU Цель: Установить на флешку,с возможностью работать...

26
1272 / 889 / 479
Регистрация: 05.12.2013
Сообщений: 2,860
14.05.2018, 14:38 2
Найти куда устанавливается OpenAL32.dll и положить его в папку с файлом, __init__ который его требует
0
5 / 5 / 0
Регистрация: 05.04.2016
Сообщений: 385
14.05.2018, 14:52  [ТС] 3
Цитата Сообщение от ТабуретY Посмотреть сообщение
Найти куда устанавливается OpenAL32.dll и положить его в папку с файлом, __init__ который его требует
уже пробовал, не работало
я немного почитал код __init__
там есть функция, которая находит OpenAL32.dll и возвращает путь к ней, я заменил поиск на банальный возврат пути к расположению этой dll'ки в другом месте (я её переместил намеренно для теста), он сказал, что не может подгрузить её (а на эту ошибку гугл вообще ничего не сказал: "could not load any library for OpenAL")

Добавлено через 11 минут
Веселее всего то, что сейчас (сейчас установлена OpenAL) я убираю OpenAL32.dll из пути, который он мне показывает (т.е. откуда он её берёт - "C:\\Windows\\System32\\OpenAL.dll"), а он продолжает её там находить... (даже перезапустил комп)
0
Эксперт Python
4262 / 1713 / 319
Регистрация: 17.03.2012
Сообщений: 9,145
Записей в блоге: 5
14.05.2018, 15:03 4
Если дело в чисто питоновский библиотеке, то проблем нет.
Можно вручную её скопировать в папку с проектом, можно через pip (кажись, ключ -target).

Если же openal ставится в винду отдельно - то не повезло. Питоновский клиент таскать с собой можно, если же нет самой либы, а она нужна в винде, то - - -

Добавлено через 1 минуту
Можно, конечно, и либу попробовать выдернуть из винды, но это уже вопрос за рамками питона.
0
5 / 5 / 0
Регистрация: 05.04.2016
Сообщений: 385
14.05.2018, 15:04  [ТС] 5
Цитата Сообщение от dondublon Посмотреть сообщение
Можно, конечно, и либу попробовать выдернуть из винды, но это уже вопрос за рамками питона.
ну, походу, всё же, к последнему вопрос и сводится, ибо ставится OpenAL отдельно от PyAL, но нужны оба

Добавлено через 13 секунд
идеи?
0
Эксперт Python
4262 / 1713 / 319
Регистрация: 17.03.2012
Сообщений: 9,145
Записей в блоге: 5
14.05.2018, 15:29 6
Есть разные способы.
1. Джентльменский. Отследить установленные файлы. Берёшь чистую систему (пойдёт виртуалка), делаешь слепок (список файлов). Устанавливаешь openAl, смотришь, что поменялось. Данный функционал есть в программах-uninstaller-ах.

2. Кулхацкерский. Ставишь программу dependency walker. Смотришь зависимости, выдираешь dll-ки под одной.

Добавлено через 2 минуты
Да, и не забудь, что бинарники для x32 и х64 различны.
0
5 / 5 / 0
Регистрация: 05.04.2016
Сообщений: 385
14.05.2018, 15:36  [ТС] 7
таксь.. из какого окошка искать DLL'ки? из левого-верхнего или же нижнего?
0
Миниатюры
Портативная библиотека  
Эксперт Python
4262 / 1713 / 319
Регистрация: 17.03.2012
Сообщений: 9,145
Записей в блоге: 5
14.05.2018, 16:40 8
Чесгря, давно уже пользовался.
Открываешь свою dll-ку, она тебе в дереве показывает, на какие другие dll-ки ссылается. Виндовые системные игнорируешь, специфичные вытаскиваешь.
Можно даже начинать не с openal32.dll (или как её там), а с питоновской pyd - интуиция говорит мне, она там очень даже возможна.
0
5 / 5 / 0
Регистрация: 05.04.2016
Сообщений: 385
14.05.2018, 16:42  [ТС] 9
хорошо, как определить какие из этих сотен либ системные, а какие - нет?
не гуглить же каждую
0
1272 / 889 / 479
Регистрация: 05.12.2013
Сообщений: 2,860
14.05.2018, 16:51 10
Цитата Сообщение от dondublon Посмотреть сообщение
с питоновской pyd - интуиция говорит мне, она там очень даже возможна
нет, там используется обычная dll, причем начинает работу только после установки инсталлятором, если просто положить dll в system32, то работать не будет
0
Эксперт Python
4262 / 1713 / 319
Регистрация: 17.03.2012
Сообщений: 9,145
Записей в блоге: 5
14.05.2018, 17:43 11
Цитата Сообщение от Nordicus666 Посмотреть сообщение
хорошо, как определить какие из этих сотен либ системные, а какие - нет?
не гуглить же каждую
Ну не знаю, догадываться. Кулхацкер - он такой. Если бы была инструкция, каждый прочёл бы и стал.
0
Эксперт Python
3991 / 2927 / 976
Регистрация: 28.10.2013
Сообщений: 7,611
14.05.2018, 18:28 12
1) PyOpenAL для windows уже поставляется с soft_oal.dll - это и есть OpenAL32.dll. Только новая, а на сайте openal (во всяких там SDK) - древняя. В том числе и в oalinst.exe (внутри установщика только одна dll).
2) whl пакет с pypi уже содержит 64-битную либу (даже если вы устанавливаете пакет в 32-битный python) и она, соответственно, будет работать только с 64-битным python.
3) Если python 32-битный - берем либу из архива openal-soft-1.18.2-bin.zip по пути:
openal-soft-1.18.2-bin\bin\Win32\soft_oal.dll (адрес архива указан в документации и там можно найти оба варианта библиотеки и 32 и 64-битный.
Заменяем дефолтную либу и на 32-битном python тоже все работает. Причем либа ищется под двум путям: каталог скрипта и каталог модуля openal.
-----------------------------------------------
Зачем вам понадобился какой-то там древний SDK 2009 года (OpenAL11CoreSDK) - загадка.

Добавлено через 5 минут
И да, из зависимостей у soft_oal только kernel32.dll, shell32.dll, user32.dll, ole32.dll, msvcrt.dll и winmm.dll - то есть только системные либы.
1
1272 / 889 / 479
Регистрация: 05.12.2013
Сообщений: 2,860
14.05.2018, 18:44 13
Правильный пакет оказывается PyOpenAL
0
Эксперт Python
3991 / 2927 / 976
Регистрация: 28.10.2013
Сообщений: 7,611
14.05.2018, 18:52 14
Да, кстати - я именно его и ставил. А PyAL на pypi - сейчас глянул - вообще с 2013 года не обновлялся.
0
5 / 5 / 0
Регистрация: 05.04.2016
Сообщений: 385
14.05.2018, 19:02  [ТС] 15
Хорошо, но я и так убил на поиски звуковой либы для питона неделю, про (именно такой) PyOpenAL я не нашёл, как же его тогда поставить? (извиняюсь, нет времени сейчас самому загуглить)
0
1272 / 889 / 479
Регистрация: 05.12.2013
Сообщений: 2,860
14.05.2018, 19:03 16
pip install pyopenal
0
5 / 5 / 0
Регистрация: 05.04.2016
Сообщений: 385
14.05.2018, 19:44  [ТС] 17
снёс предыдущий al, поставил новый (хотя разницы вообще не увидел, честно), убрал SDK с компа, попробовал запустить ранее запускавшийся на моём компе проект: module 'openal.al' has no attibute 'ALint' (гугл о таком не знает, уже проверил, такого текста он мне не нашёл)
0
1272 / 889 / 479
Регистрация: 05.12.2013
Сообщений: 2,860
14.05.2018, 19:58 18
Код придется поправить, библиотека другая https://github.com/Zuzu-Typ/PyOpenAL
0
5 / 5 / 0
Регистрация: 05.04.2016
Сообщений: 385
14.05.2018, 20:05  [ТС] 19
Цитата Сообщение от ТабуретY Посмотреть сообщение
Код придется поправить, библиотека другая https://github.com/Zuzu-Typ/PyOpenAL
Первое же, что бросилось в глаза: "PyOpenAL requires a shared OpenAL library (e.g. OpenAL32.dll), one of which the Windows distributions already come with (OpenAL Soft by kcat). You can use the official OpenAL library (deprecated) or any other compatible library, like the aforementioned OpenAL Soft library, which is still actively developed."
таки встроена там эта либа или нет?
0
1272 / 889 / 479
Регистрация: 05.12.2013
Сообщений: 2,860
14.05.2018, 20:17 20
Встроена, лежит в Lib\site-packages\openal
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
14.05.2018, 20:17

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Портативная игровая консоль
Задумал проект "портативная игровая консоль" , проект будет являться портативной игровой консолью...

Портативная аппликация JavaFX
Всем доброго времени суток! Объясните пожалуйста чайнику. Хочу сделать портативную аппликацию...

Портативная программа в Visual Studio
Здравствуйте. Можно-ли в Visual Studio сделать портативную программу, которая не требовала-бы...

Портативная БД для Visual Studio 2010
Есть проект, в проекте куча табличок з даними которые хранятьса в БД SQL Server. Но для того чтобы...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.