当您在另一个子文件夹中时,如何从子文件夹导入文件?(python)
我当前在'strategy.py'文件中,正在尝试导入'utils.py'和'BaseStrategy.py'('utils.py'是一个包含一些函数的文件,'BaseStrategy.py'包含一个名为'BaseStrategy'的类) 文件夹结构:当您在另一个子文件夹中时,如何从子文件夹导入文件?(python),python,python-3.x,import,Python,Python 3.x,Import,我当前在'strategy.py'文件中,正在尝试导入'utils.py'和'BaseStrategy.py'('utils.py'是一个包含一些函数的文件,'BaseStrategy.py'包含一个名为'BaseStrategy'的类) 文件夹结构: program\ __init__.py main.py folder1\ __init__.py utils.py BaseStrategy.py folder2\ __init__.py
program\
__init__.py
main.py
folder1\
__init__.py
utils.py
BaseStrategy.py
folder2\
__init__.py
strategy.py
在“main.py”中,我可以像这样导入两个文件:
从folder1.BaseStrategy导入BaseStrategy
从folder1导入utils
那么如何在“strategy.py”中导入“utils.py”和“BaseStrategy.py”?基本上,您需要在子目录中放置一个名为
\uuuu init\uuuuu.py
的空白文件。如果您想查看文档,可以这样做
您还可以更改:
sys.path.insert(0, 'program/folder1')
致:
但是它会破坏从父目录(main.py)的导入。但是,您可以通过以下方式克服这一问题:
import os,sys
sys.path.append(os.path.dirname(os.path.abspath(__file__)))
查找:
目录/main/folder1/base.py
import sys
import os
sys.path.append(os.getcwd() + '/..')
import folder2
这回答了你的问题吗@你能用文件夹结构给我解释一下吗?
import os,sys
sys.path.append(os.path.dirname(os.path.abspath(__file__)))
./main/
./main/folder2
./main/folder2/__init__.py
./main/folder1
./main/folder1/base.py
./main/folder1/__init__.py
./main/__init__.py
import sys
import os
sys.path.append(os.getcwd() + '/..')
import folder2