Я пытаюсь воспроизвести wav-файл на основе символа, который вводит пользователь. Моя структура проекта выглядит следующим образом:Доступ к файлам данных из пакета python
mypkg/
|
| mypkg/
|
| __init__.py
| code.py
| sound/
|
| A.wav
| B.wav
| ...
|
| setup.py
Я добавил следующее в setup.py
:
package_dir={'mypkg': 'mypkg'},
package_data={'mypkg': ['sound/*.wav']}
Мои code.py
выглядит следующим образом:
files = {
'A': 'sound/A.wav',
'B': 'sound/B.wav',
...
}
c = raw_input()
f = files.get(c, '?')
...playing the wave file code...
Я знаю 'A': 'sound/A.wav',
неправильно. Проблема в том, что все работает нормально, если я использую код как скрипт, но я получаю ошибку ввода-вывода, если я запускаю setup.py
, а затем импортирую это как модуль в консоли. В частности: IOError: [Errno 2] No such file or directory: 'sound/S.wav'
Я знаю, что я должен использовать pkgutil.get_data()
но тогда как я могу добавить правильный путь к файлам в моем files
словаре. Каким должен быть мой code.py
?
Получение ошибки: 'IOError: [Errno 2] Нет такого файла или каталога:«C: \\ python27 \\ Lib \\ сайт-пакеты \ \ morse_talk-0.1.1-py2.7.egg \\ morse_talk \\ enunciate.pyc \\ sound \\ A.wav'' Как устранить enunciate.pyc? – Araf
Исправлено, пожалуйста, проверьте сейчас. –
Также было бы очень признательно, если бы вы согласились с ответом, если бы они помогли вам, поскольку это побудило бы сообщество мотивировать своевременно давать хорошие ответы. (Не только этот, по любому из ваших вопросов) –