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

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

我必须文件夹 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 directory python-import sys
1个回答
0
投票

一种简洁的方法是创建一个包(打包 python 项目),然后从其中包含

setup.py
文件的目录运行
pip install
。将其安装在您的本地计算机上。这将允许您像使用任何已安装的模块一样
import

对于快速而肮脏的解决方案,您可以将所需模块目录的路径添加到 python 中

sys.path
变量的开头,当查找
import
时,它将在那里搜索。

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

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

import sys

sys.path.insert(0, '/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
© www.soinside.com 2019 - 2024. All rights reserved.