1

My Folder Structure looks like the following

person-package |- __init__.py |- person.py |- person_manager.py main.py 

person_manager.py imports person.py

import person as x 

The main.py imports person_manager.py

import person_package.person_manager as x 

When running main.py I get:

ModuleNotFoundError: No module named 'person' 

I know, I could solve that by changing the import of person_manager.py to the following

from . import person as x 

However, when running now person_manager.py directly, I get:

ImportError: attempted relative import with no known parent package 

So I can't test person_manager.py on its own. What is the most elegant way to solve that?

1 Answer 1

1

1. I recommend to always use absolute imports (unless strictly impossible).

2. person-package is not a valid Python name since it contains a dash -, if I were you I would rename to person_package with an underscore _.

3. Since person_manager.py is part of a Python importable package (i.e. it is in a directory containing a __init__.py file), then it should not be run as python person_package/person_manager.py, but as python -m person_package.person_manager.

Sign up to request clarification or add additional context in comments.

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.