fix: add pyproject.toml to declare torch as build dependency for uv build isolation#5477
Open
josiahls wants to merge 1 commit intofacebookresearch:mainfrom
Open
fix: add pyproject.toml to declare torch as build dependency for uv build isolation#5477josiahls wants to merge 1 commit intofacebookresearch:mainfrom
uv build isolation#5477josiahls wants to merge 1 commit intofacebookresearch:mainfrom
Conversation
When installing detectron2 with PEP 517-compliant tools like `uv` or `pip`, the build process fails due to `torch` not being available in the isolated build environment. This results in:
ModuleNotFoundError: No module named 'torch'
This happens because `setup.py` imports `torch`, but torch isn't declared as a build dependency. Adding a `pyproject.toml` with `torch` listed under `[build-system].requires` ensures that torch is installed into the build environment before running `setup.py`, resolving the issue cleanly.
One solution is to have the user install torch before installing the package, but tools such as uv by default leverage build isolation.
On the developer's machine this might not be an issue, however in automated ci systems that expect standard uv installation behavior, this becomes problematic.
This fix makes the package compatible with modern Python packaging tools that enforce build isolation.
|
Would love to see this merged as this is a major painpoint for integration. |
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.
This resolves a build failure when installing
detectron2with PEP 517-compliant tools such asuvor modern versions ofpip.When using build isolation (the default for these tools), installation fails with the following error:
This is because
setup.pyimportstorch, buttorchis not declared as a build requirement. As a result, it is not available in the isolated build environment.This MR adds a
pyproject.tomldeclaringtorchunder[build-system].requires, ensuring it is installed prior to runningsetup.py.While installing
torchmanually before installingdetectron2is a workaround, that approach breaks standard installation flows (e.g.,uv pip install detectron2oruv pip install -e .) — especially in CI or production packaging pipelines.Related upstream issue: #5117