【Python】导入模块的几种方法

当你导入一个模块,Python 解析器搜索模块的顺序是:

  1. 当前目录
  2. shell 变量(windows环境变量) PYTHONPATH 记录的每个目录。
  3. 默认路径:
    – UNIX:/usr/local/lib/python/
    – Windows:C:\Users\username\AppData\Local\Programs\Python
    – sys.path:保存默认搜索位置的变量(包含:PYTHONPATH、当前目录、安装过程决定的默认目录)

参考链接:https://www.runoob.com/python/python-modules.html

当前(同级)文件夹

folder1
|- - mod1.py
|- - mod2.py

import

import module1[, module2[,... moduleN]]

'''mod1.py'''

import mod2


var = mod2.name()

from…import

from modname import name1[, name2[, ... nameN]]

'''mod1.py'''

from mod2 import name


var = name()

from modname import * ( 极 不 推 荐 )

'''mod1.py'''

from mod2 import *


var = name()
var1 = name1()

下级文件夹(子目录)

folder1
|- - mod1.py
|- - folder2
|- - |- - __init__.py
|- - |- - mod2.py

  1. 首先在需导入的模块的所在文件夹建立一个名为 “__init__.py” 的特殊 Python 文件,这样 Python 解释器会把该文件视为 Python包(package),导入时只需再添加包名就好了
  2. 导入

from packagename import modname[, modname[, ... modnameN]]

'''mod1.py'''

from floder2 import mod2


var = mod2.name()

from packagename.modname import name1[, name2[, ... nameN]]

'''mod1.py'''

from floder2.mod2 import name


var = mod2.name()

上级文件夹(父目录)

folder1
|- - __init__.py
|- - mod1.py
|- - folder2
|- - |- - __init__.py
|- - |- - mod2.py

导入上级文件夹的模块时就稍微麻烦一点。

:同样的,请先确保该模块所在目录有 __init__.py

因为 Python解释器会一一搜索 sys.path 记录的目录,所以:

import sys
sys.path.append('你要导入的包所在目录')
from packagename import modname[, modname[, ... modnameN]]

'''D:/python/folder1/floder2/mod2.py'''

import sys

sys.path.append('D:/python')

from folder1 import mod1


var = mod1.name()

此用法每次运行程序时都把指定路径添加到 Python 解释器的默认搜索路径中,程序结束后不会保存。

当然,还有 永久性 方法,就是设置 PYTHONPATH 环境变量:

Windows:

win+r --> cmd -> set PYTHONPATH=c:\python27\lib;

UNIX:

set PYTHONPATH=/usr/local/lib/python

感谢看到这里,相信现在无论导入什么模块对你来说都是轻而易举。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值