Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[BUG] Incompatibility with Python 3.12 #497

Open
IGLOU-EU opened this issue Dec 15, 2024 · 6 comments
Open

[BUG] Incompatibility with Python 3.12 #497

IGLOU-EU opened this issue Dec 15, 2024 · 6 comments
Labels
bug Something isn't working

Comments

@IGLOU-EU
Copy link
Contributor

Contact Details

No response

Description

Hi,
When attempting to enable the CAD_Sketcher addon in Blender 4.3.1, the following error occurs:

Traceback (most recent call last):
  File "/usr/share/blender/4.3/scripts/modules/addon_utils.py", line 358, in enable
    raise RuntimeError("Extension {:s} is incompatible ({:s})".format(module_name, error))
RuntimeError: Extension bl_ext.user_default.CAD_Sketcher is incompatible (This Python version (3.12) isn't compatible with (3.11))
  • Blender Version: 4.3
  • Python Version: 3.12.7

Thanks :)

Addon Version

latest

Blender Version

4.3.1

What platform are you running on?

Linux

@IGLOU-EU IGLOU-EU added the bug Something isn't working label Dec 15, 2024
@IGLOU-EU
Copy link
Contributor Author

IGLOU-EU commented Dec 15, 2024

This issue is likely due to the absence of a wheel compatible with Python 3.12. Currently, all available wheels are built for Python 3.11:

py_slvs-1.0.6-cp311-cp311-musllinux_1_1_x86_64.whl
py_slvs-1.0.6-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
py_slvs-1.0.6-cp311-cp311-win32.whl
py_slvs-1.0.6-cp311-cp311-macosx_10_9_universal2.whl
py_slvs-1.0.6-cp311-cp311-win_amd64.whl
py_slvs-1.0.6-cp311-cp311-macosx_10_9_x86_64.whl
py_slvs-1.0.6-cp311-cp311-musllinux_1_1_i686.whl
py_slvs-1.0.6-cp311-cp311-macosx_11_0_arm64.whl
py_slvs-1.0.6-cp311-cp311-musllinux_1_1_aarch64.whl
py_slvs-1.0.6-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
py_slvs-1.0.6-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl

Related issue: realthunder/slvs_py#10

@IGLOU-EU
Copy link
Contributor Author

I was able to "solve" the issue by rebuilding py_slvs for Python 3.12 (cp312) or by duplicating/renaming an existing cp311 wheel in cp312, and declaring it in blender_manifest.toml.

@mj1911
Copy link

mj1911 commented Jan 4, 2025

In my case (Arch linux) the system Python upgrade to 3.12 removed py-slvs. So had to reinstall that first. Then there was no way to remove the existing CAD Sketcher plugin... manually deleted /home/me/.config/blender/4.3/extensions/user_default/CAD_Sketcher and refreshed plugins. Then as you said, renamed the wheels and modified the manifest and it would install. Unsure how stable this is, but it seems to be working. If anyone else cares to try, the modified file can be found at: https://github.com/mj1911/misc/blob/main/CAD_Sketcher_0.27.61.zip

@hubernikus
Copy link

I also have that issue, but for python3.13 as the system default (Arch linux)

Extension bl_ext.user_default.CAD_Sketcher is incompatible (This Python version (3.13) isn't compatible with (3.11))

What's a work around for this? To build the extension from source?

@kekonn
Copy link

kekonn commented Jan 14, 2025

Same here as above.

@mj1911
Copy link

mj1911 commented Jan 14, 2025

This is really unfortunate that OSes are just willy-nilly upgrading their python versions, which ends up breaking many python apps and plugins. Do note that this thread is for python 3.12 specifically, although some OSes are already on 3.13 (technically this is a separate issue.)

I'm not sure what the best solution is here, but it certainly is not forcing hlorus et. al. to make frequent emergency releases. In fact they cannot, because the CAD Sketcher plugin depends on py_slvs, and that has (still) not been updated yet. So their hands are tied.

What I did above was extract the .zip file, change all wheel file names from 311 to 312, and update the manifest file with the updated filenames, then recompress it. It seems to work in 3.12, so a similar mod might work for 3.13. Give it a try, but anticipate that this may have issues or not work at all. 3.11 to 3.12 is a small difference, but 3.11 to 3.13 has a higher chance of something not working right.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

4 participants