如何从其他文件夹导入依赖项?

How to import dependencies from other folder?

提问人:Simon Bebek 提问时间:10/3/2023 更新时间:10/5/2023 访问量:47

问:

我必须文件夹 A 和 B。文件夹 A 是我的 main.py。在文件夹 B 中,有几个不同脚本的类:B1.py、B2.py、B3.py......

我想从 B1.py 导入一个类。我让它与sys.path.append等一起使用。但问题是 B1.py 脚本从文件夹 B 中的其他脚本导入其他类:

from B2 import classB2 from B3 import classB3

当我尝试在我的 main.py(位于文件夹 A 中)中导入 ClassB1 时,它无法导入类 classB2、classB3 等。我该如何解决这个问题?

我尝试在 B1.py,...中添加 B.B1 和 B.B2 等文件。这有效,但我不应该更改 B 中的代码。

导入 目录 python-import sys

评论


答:

0赞 C L 10/4/2023 #1

一个简洁的方法是创建一个包(打包 python 项目),然后从运行其中文件的目录中。将其安装在本地计算机上。这将允许您像使用任何已安装的模块一样。setup.pypip installimport

对于一个快速而肮脏的解决方案,您可以将所需模块目录的路径添加到 python 中变量的开头,它会在查找 .sys.pathimport

importB1 中的语句不会以这种方式被破坏。

下面是文件夹 A 中的一个测试用例,其中 B 中的每个模块都导入下一个模块并调用其 hello 函数

import sys

sys.path.insert(1, '/root/projects/learning/B')

import b1

b1.hellob1()

这是输出

# /bin/python3 /root/projects/learning/A/a1.py
Hello World from b1.py
Hello World from b2.py
Hello World from b3.py