Use editable pip install to fix testing of cython packages#173
Merged
joewallwork merged 1 commit intomainfrom Feb 23, 2026
Merged
Use editable pip install to fix testing of cython packages#173joewallwork merged 1 commit intomainfrom
joewallwork merged 1 commit intomainfrom
Conversation
In #172 the --no-build-isolation was added, needed to access to petsc etc. packages during build of cython modules, but the -e flag was dropped. It appears that this breaks importing a python module with a cython submodule, from the source directory of that python module itself. E.g. if you are in the animate/ source directory, "import animate" in python, it will try to import it from the local directory, but if that module was built without the -e flag, the numbering.cpython-312-x86_64-linux-gnu.so is not available in animate/numbering/ but only in the installed directory (/usr/local/lib/...) and therefore the import will fail on "from .cython.numbering import to_petsc_local_numbering" Therefore you can no longer run pytest within the animate/ directory. With the -e flag, the dynamic .so is placed in animate/numbering/ and it is able to "import animate" from within the local directory, as well as from anywhere else.
joewallwork
approved these changes
Feb 23, 2026
Member
joewallwork
left a comment
There was a problem hiding this comment.
Ah okay, I'd misunderstood this! Thanks for this fix.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
In #172 the --no-build-isolation was added, needed to access to petsc etc. packages during build of cython modules, but the -e flag was dropped. It appears that the latter breaks importing a python module with a cython submodule, from the source directory of that python module itself.
E.g. if you are in the animate/ source directory, "import animate" in python, it will try to import it from the local directory, but if that module was built without the -e flag, the
numbering.cpython-312-x86_64-linux-gnu.so is not available in animate/numbering/ but only in the installed directory (/usr/local/lib/...) and therefore the import will fail on "from .cython.numbering import to_petsc_local_numbering" Therefore you can no longer run pytest within the animate/ directory.
With the -e flag, the dynamic .so is placed in animate/numbering/ and it is able to "import animate" from within the local directory, as well as from anywhere else.