The src/executorch/*
files exist 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.
To work around this limitation, a symlink is used. With this symlink and this package entry in pyproject.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.*.*
to src/executorch/*/*
. This effectively gets modules like exir
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"
We should start to move directories from / to /src/ and remove the symlinks. Issue #8699 to track this effort. This will require a lot of work internally.
TODO(mnachin T180504136): Do not put examples/models into core pip packages. Refactor out the necessary utils or core models files into a separate package.