如何从不同文件夹导入Python模块

问题描述 投票:0回答:1

我的问题是我的 Z 驱动器上有一些代码,我想在 C 驱动器中访问它们。让我向您简要介绍一下项目设置:

在我的 C 盘上有 A.py 在我的 z-Drive 上,我有两个包含文件 B.py 的文件夹“fB”和包含文件 C.py 的文件夹“fC”。 在 B.py 中,我使用以下行从 C.py 导入函数:

from ..fC.C import func

当我运行 B.py 时,这工作正常,但问题是当我尝试将函数从 B.py 导入到 A.py 时。

到目前为止,我尝试将 fB 添加到 sys.path,然后导入 B.py (或其中的函数)。这有点有效,因为我得到的错误,ImportError:尝试在没有已知父包的情况下进行相对导入,然后发生在 B.py 内部,告诉我 A.py“找到”B.py,但是该错误来自行

from ..fC.C import func
.

我相信会发生这种情况,因为代码会认为相对路径 ..fC.C 应该在 C 驱动器上“启动”,而不是像我希望的那样在 z 驱动器中“启动”,但我不知道如何解决它。一种可行的解决方案是在所有文件中使用 sys.path.append() 来添加我想要添加的所有函数,但这使得代码变得糟糕且难以遵循。

这样的事情还有希望吗?或者我正在尝试做一些根本不可能的事情

python
1个回答
0
投票

您必须将一个空文件

__init__.py
添加到目标目录中才能加载。

- A.py
+ fB
  - __init__.py
  - B.py
+ fC
  - __init__.py
  - C.py
© www.soinside.com 2019 - 2024. All rights reserved.