当前位置:首页 >> 脚本专栏

python导入库的具体方法

python使用import 导入模块的语法,主要有以下两种:

import 模块名1 [as 别名1], 模块名2 [as 别名2],…: 导入整个模块。
from 模块名 import 成员名1 [as 别名1],成员名2 [as 别名2],…: 导入模块中指定成员。

上面两种 import 语句的区别主要有以下几点:

第一种 import 语句导入整个模块内的所有成员(包括变量、函数、类等);第二种 import 语句只导入模块内的指定成员(除非使用 form 模块名 import *,但通常不推荐使用这种语法)。

python学习网,大量的免费python视频教程,欢迎在线学习!

当使用第一种 import 语句导入模块中的成员时,必须添加模块名或模块别名前缀;使用第二种 import 语句导入模块中的成员时,无须使用任何前缀,直接使用成员名或成员别名即可。

下面程序使用导入整个模块的最简单语法来导入指定模块:

# 导入sys整个模块
import sys
# 使用sys模块名作为前缀来访问模块中的成员
print(sys.argv[0])

上面第 2 行代码使用最简单的方式导入了 sys 模块,因此在程序中使用 sys 模块内的成员时,必须添加模块名作为前缀。

运行上面程序,可以看到如下输出结果(sys 模块下的 argv 变量用于获取运行 Python 程序的命令行参数,其中 argv[0] 用于获取该 Python 程序的程序名)。

import test.py

在导入整个模块时可以为模块指定别名。例如如下程序:

# 导入sys整个模块,并指定别名为s
import sys as s
# 使用s模块别名作为前缀来访问模块中的成员
print(s.argv[0])

第2行代码在导入 sys 模块时才指定了别名 s,因此在程序中使用 sys 模块内的成员时,必须添加模块别名 s 作为前缀。运行该程序,可以看到如下输出结果:

import test2.py

使用导入整个模块的语法也可一次导入多个模块,多个模块之间用逗号隔开。例如如下程序:

# 导入sys、os两个模块
import sys,os
# 使用模块名作为前缀来访问模块中的成员
print(sys.argv[0])
# os模块的sep变量代表平台上的路径分隔符
print(os.sep)

知识点扩展:

自动导入任意缺失的库实例方法:

# 以下代码在 python 3.6.1 版本验证通过
import sys
import os
from importlib import import_module
class AutoInstall():
 _loaded = set()
 @classmethod
 def find_spec(cls, name, path, target=None):
   if path is None and name not in cls._loaded:
    cls._loaded.add(name)
    print("Installing", name)
    try:
     result = os.system('pip install {}'.format(name))
     if result == 0:
      return import_module(name)
    except Exception as e:
     print("Failed", e)
   return None

sys.meta_path.append(AutoInstall)