Упаковка файлов .txt для использования в исполняемом файле python с использованием pyinstaller

Я создал игру виселицы с использованием других файлов .txt в том же каталоге, содержащих банки слов для игры виселицы, они открываются из файла hangman.py, когда я использую pyinstaller для упаковки, я использую path\to\pyinstaller.exe hangman.py --onefile, но это не позволяет использовать файлы .txt из исполняемого файла. Как мне упаковать файлы .txt, чтобы исполняемый файл мог работать правильно?


person p0seidon    schedule 23.02.2019    source источник
comment
Попробуйте path\to\pyinstaller.exe --onefile hangman.py   -  person xilpex    schedule 24.02.2019


Ответы (1)


Вы можете использовать

pyinstaller --add-data 'path/to/file.txt:path/inside/exe' hangman.py

или редактирование файла спецификации со списком файлов, т.е.

added_files = [
     ( 'src/README.txt', '.' )
     ( '/mygame/sfx/*.mp3', 'sfx' ),
     ]
a = Analysis(...
     datas = added_files,
     ...
     )
person Merig    schedule 23.02.2019
comment
если есть несколько файлов txt, первый вариант не сработает, верно? и после редактирования файла спецификации мне нужно повторно запустить команду pyinstaller? или это будет работать независимо от того, находится ли исполняемый файл на той же машине? - person p0seidon; 24.02.2019
comment
После того, как вы отредактируете его, вы повторно запустите pyinstaller для файла спецификации: pyinstaller myscript.spec - person Merig; 24.02.2019
comment
при редактировании файла спецификации это абсолютный путь? или относительный путь? прошу прощения за тривиальные вопросы, я новичок во всех файлах упаковки, кроме .py с pyinstaller - person p0seidon; 24.02.2019
comment
Вы можете использовать относительные пути, начиная с корневого каталога - person Merig; 24.02.2019