当我们在Python中使用import语句导入模块或者包时,通常会将它们放在同一个文件夹中,但有时候我们需要在当前文件夹之外的上级目录下导入模块或包。本文将详细讲解如何在Python中import导入上级目录文件的方法。
方法一:使用sys.path.append()
第一种方法是使用sys.path.append()来向Python解释器的搜索路径中添加上级目录。这种方法比较简单,但是每次启动Python解释器时都需要手动添加搜索路径,比较繁琐。
- 打开要导入模块或包的Python脚本,在脚本中添加以下代码:
import sys
sys.path.append("..")
from 上级目录文件夹 import 模块名或包名
- 把“..”替换成当前文件所在的上级目录,如果要导入的文件夹在上级目录下,则需要写成“../文件夹名”。
下面是一个示例代码,假设我们现在需要在C:\Project\test\subdir\subdir2\example.py中导入C:\Project\common\helpers.py中的helpers模块:
import sys
sys.path.append("../..")
from common import helpers
helpers.say_hello()
方法二:使用__init__.py文件
第二种方法是使用__init__.py文件来将上级目录转变成包。在上级目录的文件夹中,创建一个名为__init__.py的空文件,然后就可以直接导入上级目录下的模块或包了。
- 打开要导入模块或包的Python脚本,在脚本中添加以下代码:
from 上级目录文件夹.模块名或包名 import 方法名或模块名
- 在上级目录的文件夹中创建一个__init__.py的空文件。
下面是一个示例代码,假设我们现在需要在C:\Project\test\subdir\subdir2\example.py中导入C:\Project\common\helpers.py中的helpers模块:
from common.helpers import say_hello
say_hello()
注意:在Python 3.3之前版本中需要在__init__.py文件中添加from __future__ import absolute_import
语句,否则可能会导致导入错误。
在以上两种方法中,方法二相对来说比较简单,也比较方便,在大多数情况下都可以解决导入上级目录的问题。而方法一则适用于更加复杂的环境,其中sys.path.append()方法不仅可以添加上级目录,还可以添加任意目录到Python解释器的搜索路径中。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python import导入上级目录文件的方法 - Python技术站