我的问题是我的 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() 来添加我想要添加的所有函数,但这使得代码变得糟糕且难以遵循。
这样的事情还有希望吗?或者我正在尝试做一些根本不可能的事情
您必须将一个空文件
__init__.py
添加到目标目录中才能加载。
- A.py
+ fB
- __init__.py
- B.py
+ fC
- __init__.py
- C.py