Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
176 views
in Technique[技术] by (71.8m points)

How to import a file from a subfolder when you are in another subfolder? (python)

I'm currently in the 'strategy.py' file and I'm trying to import 'utils.py' and 'BaseStrategy.py' ('utils.py' is a file with some functions in it, 'BaseStrategy.py' contains a class with the name 'BaseStrategy').

Folder structure:

program
  __init__.py
  main.py
  folder1
    __init__.py
    utils.py
    BaseStrategy.py
  folder2
    __init__.py
    strategy.py

In 'main.py' I'm able to import both files like this:

from folder1.BaseStrategy import BaseStrategy
from folder1 import utils

So how can I import 'utils.py' and 'BaseStrategy.py' in 'strategy.py'?

question from:https://stackoverflow.com/questions/65901342/how-to-import-a-file-from-a-subfolder-when-you-are-in-another-subfolder-python

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)
import sys    
sys.path.insert(0, 'program/folder1')
from folder1 import utils
from folder1 import BaseStrategy

You can also change the:

sys.path.insert(0, 'program/folder1')

To:

sys.path.append('../')

But it will mess up with the import from your parent directory (main.py). However you can overcome that with :

import os,sys
sys.path.append(os.path.dirname(os.path.abspath(__file__)))

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...