Adding __init__.py not working - Module Not Found: Fixing Python Sibling Directory Import Error

Adding __init__.py not working - Module Not Found: Fixing Python Sibling Directory Import Error

Relative Package Imports in Python

Importance of Modular Code

  • The video discusses the significance of relative package imports in Python, emphasizing the need for good software engineering practices in machine learning to avoid "spaghetti code."
  • The goal is to create modular code that enhances reusability and collaboration among developers, moving away from isolated coding practices.

Project Structure Overview

  • An example project structure is presented, featuring a source directory named "Fu," which contains subdirectories for models and tests.
  • This structure serves as a foundational layout for organizing model code and testing functionalities, although it is described as incomplete and illustrative.

Running Code and Initial Issues

  • A demonstration shows a top-level run file designed for end users to execute the code without delving into individual packages.
  • However, an error occurs when attempting to run a test file that imports from the models directory, indicating a module not found issue.

Understanding Absolute Imports

  • Reference is made to Python documentation regarding absolute imports within packages, highlighting how they can be used effectively across sibling packages.
  • An example illustrates importing modules using absolute paths (e.g., from sound.effects import Echo), which clarifies the intended approach for resolving import issues.

Solution with setup.py

  • The speaker introduces setup.py as a solution to manage package imports more effectively by utilizing setuptools.