📅  最后修改于: 2023-12-03 15:23:46.808000             🧑  作者: Mango
在 Python 中,我们可以将代码放在多个文件和目录中以方便管理和组织。但是,在不同的目录中定义的代码可能无法直接从一个文件中导入到另一个文件中。在这篇文章中,我们将介绍如何从 Python 的另一个目录中导入 something。
Python 中的 sys.path 变量是一个字符串列表,其中包括 Python 解释器在搜索导入模块时要搜索的目录。我们可以通过将我们要导入的文件所在的目录添加到 sys.path 中来实现从其他目录中导入 something 的目的。
以下是一个演示程序:
import sys
sys.path.append('/path/to/directory') # 将要导入的文件所在目录添加到路径
import something # 导入 something 模块
请注意,添加路径的顺序很重要,因为 sys.path 的搜索顺序是按照其中包含的目录的顺序进行的。因此,如果要先搜索系统默认路径中可能存在与导入模块同名的模块,可以将新路径添加到 sys.path 的开头。否则,将新路径添加到结尾通常是更好的选择。
在 Python 中,我们可以将相关的模块放在同一个目录下,并将该目录作为包。这样做可以更好地组织我们的代码,并使其易于维护。
我们可以创建一个名为 init.py 的空文件来标识包,然后在该目录下创建一个名为 something.py 的模块,其中包含我们要导入的代码。
此时,我们可以在其他模块中使用 import something 来导入代码。
以下是一个演示程序:
/myproject
/mymodule
__init__.py
something.py
main.py
在 main.py 中,我们可以通过以下方法导入 something 模块:
from mymodule import something
注意,在 Python 3.3 之后,如果我们要导入的模块不在 sys.path 中,我们还可以使用相对导入。在相对导入中,我们可以使用 . 和 .. 分别表示当前目录和父目录。
以下是一个演示程序:
/myproject
/mymodule
__init__.py
something.py
helper.py
main.py
在 helper.py 中,我们可以通过以下方法导入 something 模块:
from . import something
这将导入 mymodule 目录下的 something 模块。
##总结
在本文中,我们介绍了两种从 Python 中的另一个目录导入 something 的方法。第一种方法是使用 sys.path,第二种方法是使用包和模块。两种方法在不同的场景中都有其优点和缺点。我们应该根据需要灵活选择。