python: import模块的相关问题

python:imp —— 由代码内部访问 import 阅读详情

1. 使用imp.load_module时遇到"ImportError: No module named PAD"异常

文件的目录结构如下:
|--test.py  
|--plugins
             |--__init__.py
             |--PAD.py
             |--WEB.py     #包含“import PAD"
当在test.py文件中使用imp.load_module(‘WEB’, ...)动态导入WEB.py模块时,提示异常”ImportError: No module named PAD“。test.py的内容如下:
import imp
fp, pathname, desc = imp.find_module('WEB', ['./plugins',])
imp.load_module('WEB', fp, pathname, desc)

这个错误,在使用”import WEB“时不会出现。内容如下:
import plugins.WEB
	

可见imp在导入模块时,搜索方法和import并不相同。”import WEB“导入时,执行WEB.py文件中的”import PAD“语句,import会在WEB.py的当前目录下查找PAD.py, 而imp只会在sys.path中查找。将test.py的内容改为如下时,则无此异常。
import sys
sys.path.append('./plugins')
import imp
fp, pathname, desc = imp.find_module('WEB', ['./plugins',])
imp.load_module('WEB', fp, pathname, desc)

2.模块被重复导入的可能情况

首先,再决定是否导入模块时,python是通过检查sys.modules来判断的。
test.py内容为如下时,sys.modules字典中对应的WEB模块的键值为:‘plugins.WEB'
import plugins.WEB

test.py内容为如下时,sys.modules字典中对应的WEB模块的键值为:'WEB'
import sys
sys.path.append('./plugins')
import WEB

使用imp导入时,test.py内容如下, sys.modules字典中对应的WEB模块的键值为:‘WEB’
import imp
fp, pathname, desc = imp.find_module('WEB', ['./plugins',])
imp.load_module('WEB', fp, pathname, desc)

总结,sys.modules字典中的键值是依据“到达模块的路径”得到的。如果将要导入模块的键值,不存在于sys.modules时,模块会被再次导入。存在,则不会再被导入。所以,当从不同的出发点(路径)尝试导入同一个模块时,这个模块是可能会被多次导入的。在某些情况下,这是需要注意的细节。

3.不同的导入方法的区别

imp.load_module: 不论模块是否存在,都再次导入。但是间接导入(模块中又使用import导入的其他模块),参照import的规则。
__import__: 检查sys.modules字典,存在则跳过。
import::检查sys.modules字典,存在则跳过。
Redis简介和项目应用 内存优先架构简介Redis的读写操作都是在内存中执行的,计算机内存的读写速度极快,比机械硬盘的读写快很多,因此也会比MySql采用机械读写的方式性能更高。但是这样会产生一个问题,当Redis重启之后,内存中的数据就会丢失,为了保证数据不会因为服务器重启而丢失,Redis实现了数据持久化的机制,这个机制会把数据存储到磁盘中,当服务器重启的时候,能够从磁盘中恢复原有的数据。 阅读详情

相关推荐

【小宁学习日记6 PCB】电路原理图

本文系统讲解了电子硬件设计中原理图的阅读与绘制技巧。首先剖析原理图的四大核心要素(元件符号、连接线、结点、注释),强调注释对可读性的重要性。然后提出三步读懂法:查看图纸信息、分模块分析、结合芯片手册验证,并列举5个典型芯片案例(CH224K、CH343P等)进行实战解析。最后给出6条绘制规范:模块化布局、详细标注、规范命名、信号流布局、符号封装匹配、版本管理。文章指出原理图是电子设计的"地基",掌握规范阅读与绘制方法能大幅提升设计效率,避免常见错误。新手应从开源项目分析和简单电路绘制入手

qq_74376834的博客 2352

【python】imp让引用模块更加简单,import升级版

imp,顾名思义就是"import"的缩写。在功能上也一样,但用起来比import要成熟一些。 直接看例子:在一个py文件中调用另一个py文件,不用import的方式。 第一个文件func.py这么写: def print_text(): print('hehe') 第二个文件imp_test.py这么写: import imp # 第一个参数为命名,重要的是第二个参数指定引用函数路径就行 the_func = imp.load_source('lol', './func.py...

机器学习算法与Python学习 3694

总结所有的池化(Pooling)方法

为什么池化? 池化(Pooling)层和卷积层、全连接层一样,都是卷积神经网络的组成部分。 卷积神经网络中的卷积层会将卷积Filter应用于输入图像,以便创建特征映射来总结输入中这些特征的存在。 卷积层被证明是非常有效的,在深层模型中叠加卷积层可以让接近输入的层学习低层特征(如线条),在模型中更深(高)的层用于学习高阶或者更抽象的特征,如形状或特定对象。 卷积层特征映射输入的一个局限性是它们只能精确记录特征在输入层的位置。这意味着在输入图像中特征位置的小幅移动将导致不同的特征映射。这可以随着重新裁剪

大脸猫的博客 1万+

Python中imporlib与imp导入模块的区别以及如何使用绝对路径和相对路径

importlib与imp在导入模块时的区别,以及如何使用importlib以文件绝对路径导入模块

prili的博客 5224

WPF实战:HelixToolkit 3D图形开发入门指南

本文详细介绍了如何使用HelixToolkit在WPF中进行3D图形开发,从环境搭建到创建第一个3D程序(如彩色立方体),再到进阶技巧和常见问题排查。通过实战案例和性能优化建议,帮助开发者快速掌握3D场景构建和模型导入技术,提升开发效率。

weixin_29197051的博客 758

从Gcode命令看3D打印机的‘大脑’:Marlin/Klipper固件是如何执行你的指令的?

本文深入解析3D打印机固件Marlin和Klipper如何执行Gcode指令,从语法解析到运动控制算法,再到温度管理,详细揭示了从指令到物理动作的转化过程。通过对比两大固件的设计哲学和性能优化技巧,帮助用户更好地理解和调优3D打印机的核心控制系统。

weixin_26763955的博客 382

Python之imp模块

imp.get_suffixes() 返回3元组列表(suffix, mode, type), 获得特殊模块的描述.suffix为文件后缀名;mode为打开文件模式; type为文件类型, 1代表PY_SOURCE, 2代表PY_COMPILED, 3代表C_EXTENSION >>> imp.get_suffixes() [('.x86_64-linux-gnu.so...

Ydoing的专栏 1352

CATIA CAA开发环境搭建避坑指南:从授权服务到VS配置全流程

本文提供了一份详尽的CATIA CAA开发环境搭建避坑指南,涵盖从授权服务(DSLS)安装、Visual Studio版本匹配与集成配置,到编译调试全流程。重点解析了授权服务无法连接、模块加载失败等典型问题的解决方案,强调版本严格对应与纯英文环境是成功搭建的关键。

redis7keeper的博客 572

imp.load_module(&#39_pywrap_tensorflow_internal&#39

imp.load_module('_pywrap_tensorflow_internal' 安装tensorflow2.1 后报下面的错误: imp.load_module(’_pywrap_tensorflow_internal’, fp, pathname, description) 解决办法:windows CPU 不支持tensorflow2.2 ,所以删了,重新安装的tensorflow2.0 命令如下,国内镜像,安装很快。 pip install --upgrade --pre ...

jacke121的专栏 2951

uniapp [安卓苹果App端] - 详细实现自定义水印相机功能,调用手机摄像头打开相机并在周围悬挂自定义水印,使用相机拍照后添加水印文字或样式,uniapp APP端水印相机完整源码,兼容强大可靠

uni-app,安卓Android,苹果ios,安卓app端,苹果App端,uniapp苹果app,水印相机,uniapp水印相机,Uniapp安卓app实现水印相机,uniapp苹果ios水印相机,打开系统相机拍照添加水印,地点打卡相机,水印相机(水印照片,图片加水印),uniapp自定义水印相机,制作水印相机给图片添加水印并且保存图片至本地,uniapp拍照图片加水印,水印相机功能,手机调起摄像头拍照时自动插入文字、图片动态水印效果,支持水印显示拍摄者当前城市定位、自由调整水印大小和位置,手机拍照时

🏆 前端领域优质创作者 1万+

2025.06.16【转录组】|Ribo-seq数据流程详解(二 基因组比对)

本文详细介绍了Ribo-seq数据分析中的比对流程,包括环境准备、STAR索引构建、比对参数设置及结果统计可视化。通过samtools和R脚本实现比对质量评估,提供常见问题解决方案和关键指标解读。该流程强调比对参数优化和质量控制,为后续翻译组学分析奠定基础。

1976

python中import导入模块的相关问题

1. import 搜索路径import_module_1.pyimport sys print(sys.path) ''' import的搜索路径:从上往下依次进行搜索 ['/home/longhui/Desktop/core_python_programming/venv/include/python_advanced_programming', '/home/longhui/Deskt...

qq_41020281的博客 305

BUCK-BOOST升降压电路Multisim电路仿真分析

本文分析了三极管型BUCK-BOOST升降压开关电源的工作原理。该电路结合了BUCK降压和BOOST升压拓扑,通过控制三极管Q1的高频通断,使电感L1周期性储能和释能,实现输出电压可高于或低于输入电压且极性相反。详细阐述了Q1导通和关断阶段的工作过程,推导了输出电压与占空比的关系式Vo=-D/(1-D)*Vi,并分析了不同占空比下的工作模式(降压、升压)。通过Multisim仿真验证了理论分析,当D=25%时输出降压至1.6V,D=60%时输出升压至7.5V。电路具有升降压灵活、极性反转、效率高等特点,适用

XU157303764的博客 1435

python import 自己写的包、模块相关问题

主要把python语言的文件夹组织和import规范了解了下。以免之后走弯路。主要就是前面的几个概念和规范了解了,那么对于利用python写一些比较大的项目,里面的import问题,能够有一个比较清晰的解决思路。

ryu_0316的博客 442

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

python中import导入模块_Python中怎么导入import模块

Python中怎么导入import模块发布时间:2020-08-26 16:09:55

weixin_39673601的博客 68

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

python from import 和 import 区别_import与from...import对比

1、模块的介绍与使用模块import1.1、模块的介绍1.1.1、什么是模块? 模块就是一组功能的集合体,我们的程序可以导入模块来复用模块里的功能。 在python中,模块的使用方式都是一样的,但其实细说的话,模块可以分为四个通用类别: (1)使用python编写的.py文件 (2)已被编译为共享库或DLL的C或C++扩展 (3)把一系列模块组织到一起的文件夹(注:文件...

weixin_39890652的博客 353

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

python和html区别_python 2和3的区别 import

python语法问题:import和__import__()有什么不同?import作用: 导入/引入一个python标准模块,其中包括.py文件、带有__init__.py文件的目录; __import__作用: 同import语句同样的功能,但__import__是一个函数,并且只接收字符串作为参数,所以它的作用就可想而知了。python 里面 的 import 命令的 import的用法意思...

weixin_39637700的博客 173

深入理解python中的import

顶层代码是指模块中直接位于函数或类外部的代码,比如变量赋值、print语句、函数调用等。假设我们有一个模块print("模块被导入了!")")当你在另一个文件中导入模块被导入了!可以看到,print("模块被导入了!")作为顶层代码,在导入时自动执行了一次。顶层代码在模块导入时的自动执行是Python的强大特性,但也需要谨慎使用。通过将代码封装到函数中、使用块或采用惰性初始化,你可以灵活控制代码的执行范围,避免不必要的副作用。减少不必要的顶层代码,提升模块性能。使用块区分主程序模式和导入模式。

weixin_37840904的博客 2404

python中使用import*导入部分模块_python基础--自定义模块、import、from......import.........

自定义模块、import、from......import......1)模块的定义和分类1.模块是什么?我们知道一个函数封装了一个功能,软件可能是有多个函数组成的。我们说一个函数就是一个功能,那么把一些常用的函数放在一个py文件中,那么这个文件就称之为模块。模块就是一些列常用功能的集合体。什么是模块:本质就是.py文件,封装语句的最小单位。2.为什么要使用模块从文件级别组织程序,更方便管理 随着...

weixin_39999116的博客 1053

Python import 机制与文件路径问题解析

今天在开发过程中,遇到一个路径文件,排查了一个多小时。。。import 的路径问题,尤其是在不同模块之间调用时,可能会因为 相对路径错误。

liangpangpangyo的博客 608

python 导入模块的两种方式与导入路径问题

导入模块的两种方法: import + 模块名 这个方式导入的模块,调用里面的函数的时候,要用 模块名.函数 如果导入的是包里面的 就用 import 包.模块 使用的时候用 包.模块.内容 from 模块名 import 功能 这个方式是精准导入模块里面的函数,调用的时候直接用函数名来调用,不需要再写模块名了 from 模块名 import * 导入模块中__all__变量参数中...

小小探索者 2502

Python import的用法你真的了解吗

本文详细讲解import 、模块和包的作用

linmi2006的专栏 1808

ideal如何快速导入import_【Python专题(三)】Python模块导入与路径管理

​前言Python项目的路径管理是一个让人头疼的问题。在写python项目的时候,明明 import了文件A,代码运行时却收到 ModuleNotFoundError,仔细一看,是引用路径不对,很是气人。又或者,当项目中出现了重名的packages时,发现引用的函数并不是自己想要的,而是其他同名packages中的函数。这些问题归根结底都是Python路径管理的问题。那么今天我们一起来看看Pyth...

weixin_29911401的博客 299

python怎么查看模块用途_Python之浅谈模块

模块的四种形式什么是模块​ 模块就是一个py文件, 这个py文件有一大堆函数自定义模块,common.py就叫做common模块第三方模块: 需要自己安装 13万个第三方库 ,无所不能,写库(弄得更简单)内置模块: python解释器自带的,不需要安装包--> 含有__inti__.py的文件夹,一种特殊的模块(解决了一个问题)import和from......importimp...

weixin_39662955的博客 172

Python2.5.4移植项目:import module问题的解决与boa服务器CGI访问问题

 承接上一篇文章:《Python2.5.4移植到arm-linux》http://blog.youkuaiyun.com/AIXT2006/archive/2009/05/31/4229779.aspx 1       Import module问题的解决此问题已解决。经过LeoJay的指导:“关于你不能import module的问题,我想是因为你没有把build.arm/build

丐帮IT分舵八袋弟子的技术博客 3556

Python常见问题处理

Python常见问题处理

Fisher3652的博客 547
上一篇: git使用介绍(一)
下一篇: XML基础知识
wangst4321
博客等级 码龄16年 4粉丝 25原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值