0

My project structure looks like this:

project/
|--- helper_modules/
    |--- util.py
|--- scripts/
    |--- A.py

If I put the script A.py in the project/ folder, it runs and imports successfully using from helper_modules.util import fn. But I have a number of scripts and to keep things organised I'd like to have them all in their own subfolder. How can I do this and still import from helper_modules?

I'm in the directory /project/ when I call the scripts.

Adafe Jaja
  • 53
  • 1
  • 5

3 Answers3

1

You just need add this in your script A.py :

from ..helper_modules.util import fn

and run A.py exiting one level from the project folder, so if you are in project folder do:

cd ..

Then run A.py using

python -m project.scripts.A
amitoz
  • 313
  • 2
  • 4
  • 13
0

I found this which gave me a workaround. Apparently this can't be done by default in Python.

In each script in the scripts folder, I started with this code:

# add to the Python path to import helper functions
import sys
import os
sys.path.append(os.path.abspath('.'))
Adafe Jaja
  • 53
  • 1
  • 5
0

If your current directory is /project/, you should launch the script using:

python -m scripts.A

And from within scripts/A.py, you can do

from helper_modules.util import fn
Daniel Pryden
  • 59,486
  • 16
  • 97
  • 135