Python import
终极解决import包方法:
需要注意的是,你有几层目录结果就用几个 os.path.pardir ...我这里是三层目录结果. atm_shop/atm/core
import sys,os BASE_DIR = os.path.normcase(os.path.join(os.path.dirname(os.path.abspath(__file__)),os.path.pardir,os.path.pardir)) sys.path.append(BASE_DIR) print(BASE_DIR)
注意: 最好不要使用import 导入自己写的模块, 建议使用 from...import导入自己写的模块。否则很可能出现报错。
导入包
可以在init.py中加入 模块名来实现 from api import *
import会触发执行__init__.py
导入自己写的模块,有两种方式: 绝对路径 和 相对路径
from glance.api import policy 绝对路径,需要注意的是: 路径需要从顶层开始写
from .api import policy 相对路径,需要注意的是:程序入口文件不能使用相对导入
import反射
方法一:
__import__("str") (解释器调用)
可以将字符串解析为模块名 进行导入,经常用在 让用户输入一个模块,就导入什么模块
方法二:
import importlib (推荐使用这个)
importlib.import._module("str")