Skip to content

Latest commit

 

History

History

src

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 

Why Do We Have These Symlinks

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.

The Symlink Solution

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"

Long Term Solution

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.