Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/326.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
当您在另一个子文件夹中时,如何从子文件夹导入文件?(python)_Python_Python 3.x_Import - Fatal编程技术网

当您在另一个子文件夹中时,如何从子文件夹导入文件?(python)

当您在另一个子文件夹中时,如何从子文件夹导入文件?(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

我当前在'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
    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