nteract/papermill

ImportError: attempted relative import with no known parent package

Open

#709 opened on Dec 27, 2022

View on GitHub
 (1 comment) (0 reactions) (0 assignees)Python (402 forks)batch import
bughelp wanted

Repository metrics

Stars
 (5,381 stars)
PR merge metrics
 (No merged PRs in 30d)

Description

I'm trying to turn into a pip package a notebook which runs using Papermill. There are python file local to the package that I want to import into the notebook but it's giving me an error:

# SCRIPT_DIR = os.path.dirname(os.path.abspath(__file__))
# sys.path.append(os.path.dirname(SCRIPT_DIR))
from . import utils, preprocessing as prep
ImportError: attempted relative import with no known parent package

This way of importing gives this error whether I try to run the notebook manually and through Papermill.

I've also tried importing it directly:

import utils, preprocessing as prep
ModuleNotFoundError: No module named 'utils'

The direct import runs fine if I execute the notebook manually, but when I try to run them through Papermill it doesn't work.

In my package parent I have

import os, sys; sys.path.append(os.path.dirname(os.path.realpath(__file__)))

from . import preprocessing
from . import utils

Contributor guide