【无标题】python import小坑提醒

python import详解

1.import定义

import 是用来导入python项目需要的包或函数,包来源有两种一种是自己编写的包,还有就是官方提供的第三方包。import的用法主要有两种,第一种是直接import 第二种是from 文件 import 包

2.导入第三方包

这里推荐在自己的项目下创建按虚拟环境,如何在terminal上输入pip install 包名,具体如何创建虚拟环境可以查看我之前的文章,创建虚拟环境
,可以在自己的pycharm下的terminal下输入命令在这里插入图片描述
类似于这样。

3.导入自己创建的包或者函数

说到导入自己创建的包和函数,首先需要了解python的绝对导入相对导入两个概念,通常这些问题会引起类似于这几种错误。

ModuleNotFoundError: No module named 'moduleY'
ValueError: attempted relative import beyond top-level package
ModuleNotFoundError: No module named '__main__.moduleY'; '__main__' is not a package

3.1 绝对导入

绝对导入是python的默认导入方式,需要注意的是,在当前模块中引入同级别的模块或者同级别的包下的模块的时候,最好把导入路径写完整。当出现类似于这样的错误时就需要考虑相对导入的方式
在这里插入图片描述

3.2 相对导入

相对导入解决了绝对导入遇到的一些问题:

  • 同一个包下的模块可以很方便的相互引用,使用像 from . import xxx 的语句就行。
  • 顶层包的报名改了,包下的模块的相对导入的语句基本不用改。

下面简单举一个例子来说明用法:

project/
	m1/
		a1.py
	m2/
		a2.py
	a3.py
	a4.py

假如说一个简单的目录结构如上,当a3.py想要导入a1 a2 a4是绝对导入的方式为:

import a4
from m1 import a1
from m2 import a2

有时会遇到导入失败的提示。
那么相对导入怎么用呢?相对导入只能使用 from <> import <> 这种语法,并且使用 . 作为前导点。

from . import a4
from .m1 import a1
from .m2 import a2

. 代表的是当前目录下,
..代表的是上一级目录下的module
例如向a2中导入a4,需要输入from .. import a4

注意:相对导入只使用于顶级包内的模块,可以理解为,需要导包的程序位于项目第一层文件中。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值