-
Notifications
You must be signed in to change notification settings - Fork 63
Python 3.13.3 Circular import #1077
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
Comments
|
Could you paste the error? |
We have even tried to do more simple direct python file import to remove all the possible issues, but then we got this error, that says that the c++ binding was never copied to the virtual environment, from 3.9 to 3.12 no error like this occurs:
The place where it really does not work is here: Can this be related of python itself? Locally python 3.9, 3.10, 3.11, 3.12, 3.13 also works, but not cibuildwheels. |
Yes But still python 3.13 error I cannot explain. |
Is editable install relevant? My first suspicion is that the |
No, the "special" thing about 3.13 is you are using the Stable ABI for 3.12+, and so cibuildwheel is reusing the 3.12 wheel and just running the tests on it. This probably means you aren't making a valid stable ABI wheel. |
@henryiii it can be true because on 3.13 build everything works, but it does not work when both 3.12 and 3.13 are built together. If this is the case and Stabe ABI will support future python version. |
Can you look at the filenames inside the wheel? (Might be in your logs). You can also remove the Stable ABI handling, that would quickly fix your issue, though you'd have to make separate wheels for 3.12 and 3.13 (and 3.14, etc). |
No, because this test is failing, the Stable ABI isn't working. I'm guessing it's not generating the correct name for the .so's, but this is |
You can mimic cibuildwheel locally by building for 3.12, then installing the wheel on 3.13, by the way. That's all cibuildwheel is doing. (Unless it's the manylinux bundling that's broken, but it shouldn't be). |
I commented out function(add_nanobind_module module_name source_file)
nanobind_add_module(
${module_name}
# STABLE_ABI
NB_STATIC
${source_file}
) I let the process run again, same problem on 3.13 version:
|
The filenames inside the |
This is the log, the 3.13 is skipped since 3.12 is compatible, but this is where the test fails: log.txt |
@LecrisUT I've commented out the two, now the process is rerunning. Let's see. Fingers crossed. |
That's great, but the StableABI shouldn't be broken. Can you build a 3.12 with stable ABI (maybe you already have it), then look at the .so names with |
I added the screenshot above, I am currently on windows, the dynamic libraries of python ends by .pyd. The abi wheel contains only 3.12 version: This is repository (no need of any 3rd party installation as it is handled by cmake): https://github.com/compas-dev/compas_shapeop |
Ah, probably because you don't have Footnotes |
Just added, I am rerunning the build again :) |
Uh oh!
There was an error while loading. Please reload this page.
I have circular import problem for relatively simple nanobind code.
Repository;
compas_shapeop
Installation
Circular import error happens during test phase.
Can anyone try this repository?
The text was updated successfully, but these errors were encountered: