您的位置:

Python import路径详解

一、导入模块的几种方式

在Python中,我们可以使用import语句来导入模块,常用的导入方式如下:


import module_name
from module_name import function_name
from module_name import *

第一种方式是直接导入整个模块,然后使用模块名来访问其中的函数和变量;第二种方式是从模块中导入指定的函数或变量;第三种方式是从模块中导入所有的函数和变量。

二、导入路径的搜索顺序

在Python中,如果要导入一个模块,会按照以下顺序搜索导入路径:

  1. 当前目录
  2. PYTHONPATH环境变量指定的目录
  3. 标准库目录(Python安装目录下的lib/pythonX.X/)

三、查找模块的路径

我们可以使用sys模块中的path属性来查找Python在搜索导入路径时所查找的所有目录。


import sys
for path in sys.path:
    print(path)

四、自定义模块的导入路径

在Python中,我们可以自定义模块的导入路径,方法是把自定义的路径添加到sys.path中:


import sys
sys.path.append('custom_module_path')

这种方式可以使Python在搜索导入路径时包含自定义的路径,从而导入自定义的模块。

五、包的导入

除了导入模块外,我们还可以导入包。在Python中,包是一组相关的模块的集合。在导入包时,Python会首先在对应的目录下查找__init__.py文件。如果找到该文件,则Python会将该目录视为一个包。

在导入包时,我们可以使用以下方式导入包中的模块:


import package_name.module_name
from package_name import module_name
from package_name.module_name import function_name
from package_name.module_name import *

六、在打包的程序中使用相对路径导入

在打包的程序中,为了避免出现模块名冲突的问题,通常会使用相对路径来导入模块。在Python中,可以使用点号来表示相对路径。

例如,在一个包中的module1中导入同级目录下的module2,可以使用以下方式:


from . import module2
from .module2 import function_name
from ..module3 import function_name

其中,“.”表示当前目录,“..”表示上级目录。