I am trying to convert my python 3.11.3 project into a package via a setup.py
. The general structure is something like this
- project_name/
- project_name/
- sub_module/
__init__.py
file_containing_class.py
setup.py
When I wrote the code, I ran all the scripts from within the inner project_name
folder. This was convenient because imports were much more readable like this. For instance, I could write into the __init__.py
file
from sub_module.file_containing_class import SomeClass
rather than
from project_name.sub_module.file_containing_class import SomeClass
However, when I have a setup.py
like
from setuptools import setup, find_packages
setup(
name='project_name',
version='1.0.1',
url=None,
author='Joe',
packages=find_packages(),
classifiers=[
"Programming Language :: Python :: 3",
"License :: OSI Approved :: MIT License",
"Operating System :: OS Independent",
],
)
I get an error for the import above
ModuleNotFoundError: No module named 'sub_module'
(presumably) because it does not have the project_name
prefix. Is there a handy way how to extend all imports by project_name
without manually needing to do it? Again, I find the code more readable without it, anyway.