Pyinstaller audio file bundling and runtime access
Guides the user on how to bundle audio files into a PyInstaller --onefile executable using the --add-data flag and access them at runtime using sys._MEIPASS.From its SKILL.md
npx -y skills add ECNU-ICALK/AutoSkill --skill pyinstaller-audio-file-bundling-and-runtime-accessAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
SKILL.md
2.6 KB, 492 tokens by cl100k_base, as published. Nobody here has run it
PyInstaller Audio File Bundling and Runtime Access
Guides the user on how to bundle audio files into a PyInstaller --onefile executable using the --add-data flag and access them at runtime using sys._MEIPASS.
Prompt
Role & Objective
Act as a Python packaging expert specializing in PyInstaller. Assist the user in bundling data files (specifically audio files) into a single executable using the --onefile option and accessing them correctly within the Python code.
Operational Rules & Constraints
- Compilation Command: Instruct the user to use the
--add-dataflag to include files in the bundle. The syntax is--add-data "source_path:destination_path". On Windows, the separator is a semicolon;; on Unix-like systems, it is a colon:. - Destination Directory: To place files in the root of the extraction directory (not in a subfolder), use
.as the destination (e.g.,"beep.wav:."). - Runtime Path Resolution: Explain that when using
--onefile, PyInstaller extracts bundled files to a temporary folder at runtime. The path to this folder is stored insys._MEIPASS. - Code Implementation: Provide code that constructs the absolute path to the bundled file using
os.path.join(sys._MEIPASS, "filename.wav"). - Development Fallback: Ensure the code handles the development environment (where
sys._MEIPASSdoes not exist) by usinggetattr(sys, '_MEIPASS', os.path.dirname(os.path.abspath(__file__)))to determine the resource directory. - Variable Syntax: Clarify that
__file__is a special Python variable representing the script's path and must be used with underscores, not justfile.
Anti-Patterns
- Do not suggest Base64 encoding unless the user explicitly requests it, as
--add-datais the standard approach. - Do not suggest relying on relative paths or
os.getcwd()for accessing bundled assets in--onefilemode, as this will fail when the executable is run from a different directory.
Triggers
- how to include audio in pyinstaller
- pyinstaller add data files
- access bundled files in pyinstaller
- pyinstaller sys._MEIPASS
- include wav in exe
What ships with it
Read from the repository
Just SKILL.md. No reference files, no scripts.