You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
PyInstaller collect_all fails on Windows: VERSION file collides with arcade.version submodule #2837
When using PyInstaller's collect_all("arcade") on Windows, the build fails because arcade ships both a VERSION file and an arcade.version submodule. On case-insensitive filesystems (Windows), these collide during the COLLECT phase.
Error
ERROR: Pyinstaller needs to create a directory at 'dist\diana\_internal\arcade\VERSION', but there already exists a file at that path!
PyInstaller tries to bundle:
arcade/VERSION (the data file)
arcade/version/ (the arcade.version submodule directory)
On Windows, VERSION and version resolve to the same path, causing the conflict.
Reproduction
On Windows:
pip install arcade pyinstaller
Create a minimal spec or script that uses collect_all("arcade"):
fromPyInstaller.utils.hooksimportcollect_alld, b, h=collect_all("arcade")
# Use these in an Analysis/COLLECT - will fail at COLLECT stage
Workaround
Skip collect_all for arcade and manually include only the runtime resources:
PyInstaller's automatic import analysis handles arcade's Python modules fine without collect_all.
Suggested fix
Either:
Rename VERSION to something that doesn't collide (e.g., _version.txt, or inline the version string into arcade/__init__.py)
Or rename the arcade.version submodule (e.g., arcade._version)
This would make arcade compatible with collect_all on Windows, which is the standard PyInstaller mechanism for bundling packages with data files and hidden imports.
I’d like to work on this. I’ll follow the maintainer-suggested approach: rename the top-level arcade/VERSION data file, update every reader/package-data reference, and add a platform-independent regression test for case-insensitive package path collisions. I’ll target the development branch and include focused test results in the PR.
Activity
Cleptomania commentedon May 18, 2026
I think renaming the
VERSIONfile is the best approach here, it can become_VERSIONor something similar.yxshee commentedon Jul 20, 2026
I’d like to work on this. I’ll follow the maintainer-suggested approach: rename the top-level
arcade/VERSIONdata file, update every reader/package-data reference, and add a platform-independent regression test for case-insensitive package path collisions. I’ll target thedevelopmentbranch and include focused test results in the PR.