from xxx import xxx 和 import xxx的区别 & import 自己的库(文件夹) & 绝对导入相对导入 (尽量不要使用 from *** import * 模糊导入)

两个import语义有差异

import xxx

import datetime
print(datetime.datetime.now())

是引入整个datetime包

引入之后datetime这个包可见,但是想用这个包里的类还要加上这个包的前缀

from xxx import xxx

from datetime import datetime
print(datetime.now())

是只引入datetime包里的datetime类

引入之后datetime.datetime这个类可见。再用这个类就不用加上包的前缀了

尽量不要使用 from *** import *

这样有的地方也叫模糊导入,*代表导入所有

因为这样容易造成函数名的重复,既危险又耗资源

用from *** import *** 特定的写导入某个模块

from 具体某个包 import  具体某个包  是ok的,不要用*的模糊导入

import 自己的库(文件夹)

如果你只是写了一个文件,即你要用的函数都在一个python文件里面,叫utils.py

那你就直接import utils 或 from utils import 函数

记住.py后缀省略省略省略

如果你要导入的在一个文件夹中

例如,目录下有client文件夹,文件夹里有foo.py文件。需要import这个foo.py,发现提示找不到该文件

这种情况需要在client文件夹里,添加__init__.py(内容为空)即可解决。

任何的库都需要这么一个文件,python才会认为这是库。

举个例子

utils.py本来写的是空的,应该是python自己给添的

然后我们所有有用的函数都在utils.py里

然后我们在程序之中

这样utils.py里面的所有函数就都可以使用了

而且只要d2l的名字,根本不会出现utils的名字

绝对导入 & 相对导入

绝对导入:所有的模块import都从“根节点”开始。根节点的位置由sys.path中的路径决定,项目的根目录一般自动在sys.path中。如果希望程序能处处执行,需手动修改sys.path。

例1:c.py中导入B包/B1子包/b1.py模块

import sys,os
BASE_DIR = os.path.dirname(os.path.abspath(__file__))#存放c.py所在的绝对路径

sys.path.append(BASE_DIR)

from B.B1 import b1#导入B包中子包B1中的模块b1

例2:b1.py中导入b2.py模块

from B.B1 import b2#从B包中的子包B1中导入模块b2

相对导入:只关心相对自己当前目录的模块位置就好。不能在包(package)的内部直接执行(会报错)。不管根节点在哪儿,包内的模块相对位置都是正确的。

#from . import b2 #这种导入方式会报错。
import b2#正确
b2.print_b2()

Python:相对导入与绝对导入(import)、os.path、__file__ - 落日峡谷 - 博客园

使用"from xxx import xxx"语句时出现错误"No module named 'xxxx'",这意味着编译器无法找到该模块。这可能是由于以下几种原因导致的: 1. 模块没有正确安装:请确保您已经正确地安装了相关的模块。您可以通过在终端或命令提示符下使用适当的包管理器来安装模块。 2. 模块名称拼写错误:请检查您的代码,确保模块名称的拼写是正确的。Python对大小写敏感,因此模块的名称必须与导入语句中使用的名称完全匹配。 3. 模块路径问题:有时候,模块可能位于您的Python解释器无法找到的位置。您可以尝试将模块所在的文件夹路径添加到Python的sys.path变量中,以便解释器可以找到该模块。 4. 版本兼容性问题:某些模块可能只与特定版本的Python兼容。请确保您正在使用与该模块兼容的Python版本,并在使用模块之前查看其文档以了解任何版本要求。 总结来说,当出现"from xxx import xxx"报错时,您应该检查模块的安装情况,确认模块名称的拼写正确,检查模块路径是否正确,并确保您正在使用与模块兼容的Python版本。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [python读取robot文件内容-RobotFrameWork读取excel等文件数据.pdf](https://download.csdn.net/download/qq_43934844/87511020)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [通用方法解决PyCharm中from ... import .... 导入出错的问题](https://blog.csdn.net/a19745131558/article/details/124835474)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [ExcelLibrary安装](https://download.csdn.net/download/mhm20088002/85691829)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值