[Python] setuptools : editable mode does not work outside my project directory

Discussão em 'Python' iniciado por Stack, Agosto 27, 2025.

  1. Stack

    Stack Membro Participativo

    I don't manage to make the editable mode work outside my project directory. I got an import error when I want to import a constructor from a module of my package.

    Example


    setuptools_test/
    __| pyproject.toml
    __| setuptools_test/
    ______| __init__.py
    ______| base.py
    _______ module/
    __________| __init__.py
    __________| base.py

    setuptools_test/pyproject.toml


    [build-system]
    requires = ["setuptools"]
    build-backend = "setuptools.build_meta"

    [project]
    name = "setuptools_test"
    version = "0.0.1"
    dependencies = [
    "requests",
    'importlib-metadata; python_version>="3.11"',
    ]

    setuptools_test/setuptools_test/__init__.py


    from .base import FirstClass

    setuptools_test/setuptools_test/base.py


    class FirstClass: ...

    setuptools_test/setuptools_test/module/__init__.py


    from .base import SecondClass

    setuptools_test/setuptools_test/module/base.py


    from setuptools_test import FirstClass

    class SecondClass(FirstClass): ...


    Problem Then, in setuptools_test/, after running python -m pip install -e ., outside setuptools_test/, I got :

    >>> from setuptools_test.module import SecondClass
    Traceback (most recent call last):
    File "<stdin>", line 1, in <module>
    File ".../setuptools_test/setuptools_test/module/__init__.py", line 1, in <module>
    from .base import SecondClass
    File ".../setuptools_test/setuptools_test/module/base.py", line 1, in <module>
    from setuptools_test import FirstClass
    ImportError: cannot import name 'FirstClass' from 'setuptools_test' (unknown location)


    But, without the editable mode, it works. What am I missing ?

    Versions installed


    ubuntu 22.04.4, python 3.11 installed with apt pip 25.2

    version from `python -m pip freeze --all``

    autocommand==2.2.2
    backports.tarfile==1.2.0
    build==1.3.0
    certifi==2025.8.3
    charset-normalizer==3.4.3
    idna==3.10
    importlib_metadata==8.7.0
    jaraco.context==6.0.1
    jaraco.functools==4.3.0
    jaraco.text==4.0.0
    more-itertools==10.7.0
    packaging==25.0
    pip==22.0.2
    platformdirs==4.4.0
    pyproject_hooks==1.2.0
    requests==2.32.5
    setuptools==80.9.0
    setuptools_test @ file:///.../setuptools_test
    urllib3==2.5.0
    wheel==0.45.1
    zipp==3.23.0
    ``

    Continue reading...

Compartilhe esta Página