简体   繁体   中英

Importing module from parent folder subfolder to run in scripts subfolder [siblings]

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.

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

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('.'))

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

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM