Source: pyside6 import module from parent folder – Google Search
To structure a Python project for absolute imports, you should define a clear project root, organize your code into packages and subpackages, and use standard tools to make the project discoverable by the Python interpreter.
The most reliable and modern method is to use a
pyproject.toml
file to declare your project as a package, and then install it in “editable mode” for development. Example project structure
Here is a recommended project layout for a single application or package. It is sometimes referred to as the “src layout” and is widely considered a best practice.
my_project/
├── pyproject.toml
├── src/
│ └── my_package/
│ ├── __init__.py
│ ├── main_logic.py
│ └── utils/
│ ├── __init__.py
│ └── helper_functions.py
└── main.py
Step 1: Create the
pyproject.toml
fileThis file is the modern standard for defining a Python project’s metadata. Create it in your project’s root directory (
my_project/
). A minimal configuration is enough to enable editable installs. File:
my_project/pyproject.toml
toml
[build-system]
requires = ["setuptools"]
build-backend = "setuptools.build_meta"
[project]
name = "my-project"
version = "0.1.0"
Use code with caution.
Step 2: Create the package structure
Inside the
src/
directory, place your project’s main package, named my_package/
.- The
__init__.py
files are what make Python treat a directory as a package. They can be empty for Python 3.3 and newer, but it’s still a good practice to include them for clarity. - The top-level
main.py
is an executable script that uses the package. Placing executable scripts outside the package prevents naming conflicts and maintains a clean separation from the library code.
Step 3: Use editable installation during development
This is the key step that enables absolute imports without modifying
sys.path
. It creates a link from your virtual environment’s site-packages to your project’s source code. - Open your terminal and navigate to the project’s root directory (
my_project/
). - Activate your virtual environment.
- Run the following command:
sh
pip install -e .
Use code with caution.
This command tells
pip
to install the package in the current directory in “editable” mode. Now, any code changes you make in src/my_package
will be immediately available. Step 4: Write your code using absolute imports
After performing the editable install, you can write your code using absolute import paths starting from the package root (
my_package
).File:
my_project/src/my_package/main_logic.py
python
from my_package.utils.helper_functions import greet
def run_my_app():
message = greet("PySide6")
print(message)
# Your main application logic here
Use code with caution.
File:
my_project/src/my_package/utils/helper_functions.py
python
def greet(name):
return f"Hello, {name}!"
Use code with caution.
File:
This script can now run your application, importing directly from your package as if it were an installed third-party library.
my_project/main.py
This script can now run your application, importing directly from your package as if it were an installed third-party library.
python
from my_package.main_logic import run_my_app
if __name__ == "__main__":
run_my_app()
Use code with caution.
To run your application, simply execute
main.py
from the project root: sh
python main.py