Closed ghost closed 6 months ago
texture2ddecoder and etcpak are C-extensions as you likely already guessed. Using github workflow they get precompiled and uploaded to pypi.
The precompiled versions are only available for python versions that were released at the point in time when the workflow was last run. For both of them this was the case before Python 3.12. As you likely have installed Python 3.12 pip couldn't find a binary version for both, and therefore tried to compile them. This is usually no problem on Linux and Mac, but is seriously annoying on Windows as you noticed, but common enough to find guides for it.
Anyway, I fixed the workflows for both texture2ddecoder and etcpak just now, so there are now binary versions for both of them available on pypi. The main problem for keeping the workflows for binary up to date are the used dependencies. cibuildwheels (cross compiling) just loves to do breaking changes, Pillow simply stopped supporting 32bit and some other minor uses, and some issues. So....I tend to just wait for people to report an issue to update them -.-'
Thanks for the explanations, for updating the extensions with the binaries and for taking the time to make this tool work for Windows users. I wanted to test if installing UnityPy would now work without the Windows 10 SDK, so I uninstalled it, all of its extensions, and the C++ workload from my version of Visual Studio. Then I attempted to install UnityPy through pip with just Build Tools 2022 to see if it would work, and it did.
You are right about the missing binaries being a problem that is common enough to find a solution. Though despite the problem being so commonplace, I had to jump through some hoops figuring out what questions I needed to ask when researching my solution, and where to look. Because of my inexperience, figuring out how to solve the specific problem I found myself with during the UnityPy installation process took time. That is why I submitted this issue in hopes of finding a solution to prevent future users from wasting time figuring out just the installation, and a solution was found. It was not an update to the README.md, but it was something better than that.
Thank you again for the fixes.
I guess that adding a note to the readme likely makes sense as you mentioned, I'm just not sure if I should recommend a python downgrade there or a full explanation of the build environment on Windows. Actually, I guess that I can simply link to your list in this issue.
I am new with code packaging and how PyPI works. I apologize for possible mistakes made here; please bear with me. \ \ I am running a Windows 10 operating system and ran into a problem installing UnityPy on my machine:
python -m pip install UnityPy
using PowerShell 5.1.\ \ For Windows users, is the Windows SDK required to install UnityPy? I do not see on the README.md specifically say that the Windows 10 SDK is required to install UnityPy using
pip
, only that the C++ redistributable was required for the Brotli dependency. But I never ran into an issue installing Brotli; just texture2ddecoder and etcpak, which required the Build Tools. \ It would be helpful if the README was updated to include these requirements for installation on Windows machines, based on what I tested: