this post was submitted on 18 Mar 2026
13 points (100.0% liked)

Python

7835 readers
28 users here now

Welcome to the Python community on the programming.dev Lemmy instance!

๐Ÿ“… Events

PastNovember 2023

October 2023

July 2023

August 2023

September 2023

๐Ÿ Python project:
๐Ÿ’“ Python Community:
โœจ Python Ecosystem:
๐ŸŒŒ Fediverse
Communities
Projects
Feeds

founded 2 years ago
MODERATORS
 

Title is kinda confusing, but basically, I followed the Python packaging process to set up my Python package development environment. My project structure is layed out the same, except for a .venv in the root directory (not in src), and additional Python files in the src/package_username directory.

I can build my package fine, but when I go to import it into other projects, I have to import it like import package_username.file or from package_username.file import SomethingInFile. For other python packages, I would only need to do import package or from package import Something.

How can I set up by build process to remove the need for the first portion in my import statements so it matches other packages like termcolor? Is there something I need to add in my __init__.py file?

you are viewing a single comment's thread
view the rest of the comments
[โ€“] AstroLightz@lemmy.world 3 points 1 week ago (1 children)

I looked at the guide you linked. So in my __init__.py file, I should import each public name I want from my files, then add them to the __all__ list like this? (I want to make sure I understood the guide correctly)

from file_1 import SomeClass
from file_2 import AnotherClass

__all__ = [
    "SomeClass",
    "AnotherClass",
]
[โ€“] eager_eagle@lemmy.world 4 points 1 week ago* (last edited 1 week ago)

right, those names are also useful when importing your package in tests

you can also create a __version__ string and append it to __all__ to have a mypackage.__version__

to pull version from pyproject.toml:

LIB_NAME: str = "mypackage"
__version__ = importlib.metadata.version(LIB_NAME)

...

__all__ = [
    "__version__",
    ...
]