-
Notifications
You must be signed in to change notification settings - Fork 537
A short term fix for editable mode install failed to import root level module such as exir #9818
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
Conversation
…l module such as exir Summary: Fixes #9558. The `src/executorch/exir` file exists primarily due to the limitations of `pip install` in editable mode. Specifically, `pip install -e .` does not recognize `<executorch root>/exir` (or any root level directory with a `__init__.py`) as a valid package module because of the presence of `<executorch root>/exir/__init__.py`. See the following GitHub issue for details: [Issue #9558](#9558). To work around this limitation, a symlink is used. With this symlink and this package entry in `pyproject.toml`: ```toml [tool.setuptools.package-dir] ... "executorch" = "src/executorch" ``` We are telling `pip install -e .` to treat `src/executorch` as the root of the `executorch` package and hence mapping `executorch.exir` to `src/executorch/exir`. This allows us to perform `pip install -e .` successfully and enables the execution of the following command: ```bash python -c "from executorch.exir import CaptureConfig" ``` Test Plan: ```bash ./install_executorch.sh --pybind --editable python -c "from executorch.exir import CaptureConfig" ``` Reviewers: Subscribers: Tasks: Tags:
🔗 Helpful Links🧪 See artifacts and rendered test results at hud.pytorch.org/pr/pytorch/executorch/9818
Note: Links to docs will display an error until the docs builds have been completed. ⏳ 3 Pending, 1 Unrelated FailureAs of commit f599c9f with merge base b66c319 ( FLAKY - The following job failed but was likely due to flakiness present on trunk:
This comment was automatically generated by Dr. CI and updates every 15 minutes. |
Summary: Test Plan: Reviewers: Subscribers: Tasks: Tags:
Summary: Test Plan: Reviewers: Subscribers: Tasks: Tags:
Summary: Test Plan: Reviewers: Subscribers: Tasks: Tags:
Why only exir? What if we have a symlink from |
Gee, I think that's better. I don't think we should symlink the whole root directory, instead we probably want to symlink all next level directories with python file. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Wow, is exir really the only top-level directory where this is a problem? I'm surprised, but it's not impossible, so here's an accept.
Summary: Test Plan: Reviewers: Subscribers: Tasks: Tags:
Actually tested
Same problem so in this update I symlink'd all the modules |
@mergennachin you probably want to take a look at this |
…l module such as exir (#9818) Summary: Fixes #9558. The `src/executorch/exir` file exists primarily due to the limitations of `pip install` in editable mode. Specifically, `pip install -e .` does not recognize `<executorch root>/exir` (or any root level directory with a `__init__.py`) as a valid package module because of the presence of `<executorch root>/exir/__init__.py`. See the following GitHub issue for details: [Issue #9558](#9558). To work around this limitation, a symlink is used. With this symlink and this package entry in `pyproject.toml`: ```toml [tool.setuptools.package-dir] # ... "executorch" = "src/executorch" ``` We are telling `pip install -e .` to treat `src/executorch` as the root of the `executorch` package and hence mapping `executorch.exir` to `src/executorch/exir`. This effectively gets `exir` out from the root level package. This allows us to perform `pip install -e .` successfully and enables the execution of the following command: ```bash python -c "from executorch.exir import CaptureConfig" ``` Test Plan: ```bash ./install_executorch.sh --pybind --editable python -c "from executorch.exir import CaptureConfig" ``` Reviewers: Subscribers: Tasks: Tags:
Summary:
Fixes #9558.
The
src/executorch/exir
file exists primarily due to the limitations ofpip install
in editable mode. Specifically,pip install -e .
does not recognize<executorch root>/exir
(or any root level directory with a__init__.py
) as a valid package module because of the presence of<executorch root>/exir/__init__.py
. See the following GitHub issue for details: Issue #9558.To work around this limitation, a symlink is used. With this symlink and this package entry in
pyproject.toml
:We are telling
pip install -e .
to treatsrc/executorch
as the root of theexecutorch
package and hence mappingexecutorch.exir
tosrc/executorch/exir
. This effectively getsexir
out from the root level package.This allows us to perform
pip install -e .
successfully and enables the execution of the following command:python -c "from executorch.exir import CaptureConfig"
Test Plan:
./install_executorch.sh --pybind --editable python -c "from executorch.exir import CaptureConfig"
Reviewers:
Subscribers:
Tasks:
Tags: