如果你的背景来自于 JavaScript 世界,你经常会很快地在另一个模块里面使用一个 javascript 模块,但是如果你在 Python 上尝试这种方法,它就不会起作用。
你不能只是导出你的类文件,然后随时导入这个文件,因为 问题是Python在Python目录中寻找这个文件而没有找到它 。
你必须指定你说的是哪个目录,你在哪个目录中,而不是 Python 的目录。让我们看看如何解决在 Python 中导入类的错误。
在 Python 中从另一个文件导入类
要在Python中从另一个文件导入一个类,请使用sys.path.append()方法。 sys.path.append()是一个内置的 Python 方法,与路径变量一起使用,用于添加一个特定的路径供解释器搜索。你需要使用**sys.path.append()**方法在运行时添加 Python 路径,然后它将解析导入文件的路径。
在 Python 中从一个文件夹导入文件到另一个文件夹是一项棘手的任务,在默认情况下,你不能这样做,如果你尝试,你会得到一个错误。原因是 Python 只搜索入口点脚本所运行的目录。
要从不同的文件夹中导入文件,你需要在运行时添加Python路径。要添加 Python 路径,使用sys.path.append()方法,它包括诸如包的位置。
sys是一个内置的Python模块,包含系统特有的参数。
在 Python 中导入一个类的例子
假设,在我们当前的工作项目目录中,有一个叫做libs 的文件夹**,** 在这个文件夹里面,有一个叫做add.py的 Python 文件。
我们想在我们的app.py 文件中使用这个add.py 文件。
在add.py 文件中写下以下代码:
def sum(x, y):
return x + y
顾名思义,它将返回两个数字的相加。
现在,打开我们的主程序文件app.py ,添加以下代码:
import sys
sys.path.append("/Users/krunal/Desktop/code/pyt/database/libs")
在这里,我们使用sys.path.append()方法在运行时追加Python路径,并传递目标路径,我们在其中放置了我们的类文件add.py。
现在,我们可以导入add.py 文件,因为现在 Python 解释器将知道在哪里寻找一个类文件:
import sys
sys.path.append("/Users/krunal/Desktop/code/pyt/database/libs")
from add import sum
我们将直接从add 模块中导入 sum() 函数:
import sys
sys.path.append("/Users/krunal/Desktop/code/pyt/database/libs")
from add import sum
print(sum(5, 6))
输出
11
这就是了,我们成功地导入了一个文件到我们的程序中,并完美地使用了它。
当你想从一个 "兄弟"目录中导入时,这种方法很好用,所以一个向上一个向下。
在 Python 中从包中导入类
要从一个包中导入一个类,请使用下面的代码。
from application.app.folder.file import function_name
请确保包的文件夹中包含一个 __init__.py,这允许它作为一个包被包含。但是当需要修改Python路径时,你需要使用上述方法,而不是使用它。
如果你像包一样结构你的文件,那么这种方法将是有效的。否则,第一种方法将是非常有帮助的。根据你的要求来使用。
所以,这就是你需要从一个目录导入一个文件到另一个目录或从另一个类导入一个类的方法。
本教程就到此为止。