ImportError: attempted relative import with no known parent package :(

This error is due to the current version of gunicorn (19.9.0) using __import__(your_app) to load your app which apparently doesn't import parent packages. This means that your __init__.py is never called.
(See https://github.com/benoitc/gunicorn/blob/19.x/gunicorn/util.py#L350)

This seems to be fixed in the current repo version of gunicorn, which I think will be released with 20.0.0.
(See https://github.com/benoitc/gunicorn/blob/master/gunicorn/util.py#L331)

The easiest workaround is to use:
CMD ["gunicorn", "-w 1", "app", "-b", "0.0.0.0:3000"]
and adding this to (to the bottom of) your __init__.py:
from .app import app

Or even better, putting create_app in a separate file, and having only imports in your __init__.py. Just make sure create_app is imported before app.


I'm relatively new to python, but ran into this issue today with cloudscraper.

The code originally was:

from . import __version__ as cloudscraper_version

I installed cloudscraper using pip3, so it installed directly to C:\Python39\Lib\site-packages\cloudscraper I received the same error message when trying to run one of the py files.

I couldn't really find anything that wouldn't be more headache than it was worth (moving, renaming files, etc) as I was just wanting to run the help.py in cloudscraper. I have a ton of modules and packages and finally got them all to where they interact with my interpreter like I want, so I didn't want to move anything. I fixed it by doing this:

from cloudscraper import __version__ as cloudscraper_version

*Note, if you used 'run as administrator' to install the package via cmd, but utilize the files through a user profile on your pc, you'll need to change permissions giving access to your pc user profile on the particular py file you're wanting to edit. (Right click file>Properties>Security>'edit permissions'>Full Control)

Just wanted to share in case this could help someone else that might run into this issue.