`

python包导入记录

阅读更多

 

 解决问题方面了解import

1.如果导入的模块和主程序在同个目录下,直接import就行了

2.如果导入的模块是在主程序所在目录的子目录下,可以在子目录中增加一个空白的__init__.py文件,该文件使得python解释器将子目录整个也当成一个模块,然后直接通过“import 子目录.模块”导入即可。

3.如果导入的模块是在主程序所在目录的父目录下,则要通过修改path来解决,有两种方法:

(1)通过”import sys,sys.path.append('父目录的路径')“来改变,这种方法属于一次性的,只对当前的python解释器进程有效,关掉python重启后就失效了。

(2)直接修改环境变量:在windows中是 “ set 变量=‘路径’  ” 例如:set PYTHONPATH=‘C:\test\...’ 查看是否设置成功用echo %PYTHONPATH%,而且进到python解释器中查看sys.path,会发现已经有了新增加的路径了。这 种方式是永久的,一次设置以后一直都有效。在linux中是 "export 变量=‘路径’ “,查看是" echo $变量 "

通过修改path是通用的方法,因为python解释器就是通过sys.path去一个地方一个地方的寻找模块的。

 

注意:项目中文件夹和包的区别

    文件夹下面有__init__.py文件,则文件夹是包

    否则就是文件夹

 

自定义的外部模块使用则,需要用sys.path.append('/home/bao/py'),里面的参数是自定义的python的路径地址

然后才能调用from  包名称 import class名称引入自定义的类

 

 

 

原理上了解import

一、sys.path :保存系统引入的classpath的路径信息(包括主模块的路径,python的home路径,pythonpath路径等 )

模块的搜索路径都放在了sys.path列表中,如果缺省的sys.path中没有含有自己的模块或包的路径,可以动态的加入(sys.path.apend(路径的绝对路径))即可。下面是sys.path在Windows平台下的添加规则。

 

二、sys.modules: Python中所有加载到内存的模块都放在sys.modules

三、import原理:

 Python中所有加载到内存的模块都放在sys.modules。当import一个模块时首先会在这个列表中查找是否已经加载了此模块,如果加载了则只是将模块的名字加入到正在调用import的模块的Local名字空间中。

 如果没有加载则从sys.path目录中按照模块名称查找模块文件,模块文件可以是py、pyc、pyd,找到后将模块载入内存,并加入到sys.modules中,并将名称导入到当前的Local名字空间。

四、模块导入后的使用情况

  import只能导入模块,不能导入模块中的对象(类、函数、变量等)。如一个模块A(A.py)中有个函数getName,另一个模块不能通过import A.getName将getName导入到本模块,

 只能用import A,然后调用用A.getName来使用。如果想只导入特定的类、函数、变量则用from A import getName即可

 import 的时候,如果后面跟着是包路径,则modules中存放的是包路径下__init__.py文件路径

如果后面跟着是模块,则modules中存放的是模块的文件路径

 

 

 

分享到:
评论

相关推荐

    python学习记录(包)

    ### Python学习记录(包) #### 一、Python中的包概念 在Python中,包是一种将多个模块组织在一起的方式。这不仅有助于保持代码的整洁,还有助于管理项目的依赖关系。通常,一个包就是一个包含了多个模块的目录,...

    Python-try试用python包的超级简便命令行工具

    标题提到的“Python-try”是一个旨在简化Python包试用过程的命令行工具,它使得探索和测试新Python库变得异常便捷。这个工具的出现,无疑为Python开发者提供了极大的便利,尤其是在快速了解和评估新引入的库时。 ...

    Aras Innovator系统配置-包导入导出

    《Aras Innovator系统配置:包导入导出详解》 在IT行业中,高效管理与协作是关键,尤其在复杂的软件开发环境中。Aras Innovator是一款先进的企业级产品生命周期管理(PLM)平台,它提供了丰富的功能来支持产品数据...

    python学习记录(模块)

    ### Python学习记录(模块) #### 模块概念与作用 模块是Python编程语言的一个核心特性,它使得开发者能够组织代码并实现代码复用。通过模块,可以将代码封装成独立的单元,便于管理和维护。 #### 标准库模块示例...

    python如何导入依赖包

    python 导入导出依赖包命令 程序中必须包含一个 requirements.txt 文件,用于记录所有依赖包及其精确的版本号。如果 要在另一台电脑上重新生成虚拟环境,这个文件的重要性就体现出来了,例如部署程序时 使用的电脑。...

    Python-微信表情商店部分表情

    7. **Python环境管理**:可能包含了`requirements.txt`文件,列出了项目运行所需的Python包及其版本,用户可以通过`pip`安装这些依赖。 8. **图像处理**:如果项目包含创建或编辑表情,可能涉及到图像合成、尺寸...

    Python学生信息记录和查询系统源码.zip

    《Python学生信息记录和查询系统源码解析》 在当今信息技术高速发展的时代,掌握编程技能,尤其是Python语言,已经成为许多学生和专业人士的必备能力。本篇文章将深入探讨一个基于Python的学生信息记录和查询系统的...

    Python个人学习记录.zip

    "Python个人学习记录.zip"这个压缩包文件可能包含了某位开发者在Python学习过程中的笔记、代码示例或者项目实践,旨在帮助我们理解并掌握Python的核心概念。虽然没有具体的标签来指示文件的具体内容,但我们可以基于...

    Python-从Python高效处理FASTQ文件

    1. 导入`Bio.SeqIO`模块: ```python from Bio import SeqIO ``` 2. 使用`SeqIO.parse()`函数打开并迭代FASTQ文件: ```python with open("input.fastq", "r") as handle: for record in SeqIO.parse(handle, ...

    python学习demo记录.zip

    4. **模块导入**:Python有大量内置和第三方模块,如`math`用于数学计算,`os`用于操作系统接口,`numpy`和`pandas`用于数据分析,`requests`用于网络请求等。 5. **面向对象编程**:Python支持面向对象编程,包括...

    Python学习资源 python学习记录网新python学习之路

    "Python学习资源"和"python学习记录网新python学习之路"的标题和描述暗示了这是一份关于Python编程的学习资料集合,可能是教程、笔记或者代码示例。"python-master"这个压缩包子文件的文件名可能代表这是一个包含...

    python键盘记录.rar

    - Python源代码文件(`.py`),这是实现键盘记录功能的核心代码,可能包含了上述库的导入和使用。 - 示例或测试用例文件,用于展示如何运行和测试键盘记录器。 - 可能还有配置文件,用于设置记录器的行为,如是否...

    python语言开发平台和打包工具

    ActivePython不仅包含了标准Python库,还包含了一些额外的模块和工具,如Pip(Python包管理器)和PyWin32(用于Windows系统接口的扩展)。安装ActivePython可以确保你在Windows系统上有一个稳定且功能完整的Python...

    Python-同步mysql数据到elasticsearch的工具

    通过这些库,开发者可以编写脚本或应用,定时或实时地将MySQL中的表数据导入到Elasticsearch索引中。 这个工具的特点包括: 1. **功能丰富**:除了基本的数据同步功能,可能还包含了错误处理、数据转换、过滤和...

    Python导入数据计算工资系统源码.zip

    这个"Python导入数据计算工资系统源码.zip"很可能包含了一个完整的项目,用于处理员工薪资的计算、记录和管理。下面我们将深入探讨该系统的可能实现和涉及的关键知识点。 1. 数据导入:Python提供了多种方法来导入...

    python学习记录.zip

    Python的核心概念包括变量、数据类型(如整数、浮点数、字符串、布尔值等)、控制流(如条件语句、循环结构)、函数定义和调用、模块导入等。在深入学习Python时,会接触更高级的主题,如面向对象编程(类和对象的...

    python 成功引入包但无法正常调用的解决

    在Python编程过程中,有时我们可能会遇到这样的困扰:成功地通过`import`语句引入了一个包,但是尝试调用其中的函数或属性时却遇到了问题。这种情况通常发生在我们重写了Python内置的库函数,如`log`和`setting`,而...

    python批量导入MongoDB数据库

    在Python中,批量导入数据到MongoDB数据库是一个常见的任务,特别是在处理非标准格式的数据时。在给定的代码示例中,我们看到一个简单的Python脚本,它将非JSON或BSON格式的数据转换为可被MongoDB接受的格式并进行...

    EWT-python.zip

    心电信号是记录心脏电活动的一种生理信号,通常包含丰富的信息,用于诊断心脏疾病。EWT在心电信号分析中的应用主要体现在以下几个方面: 1. **异常检测**:EWT能够精确地分离出不同频率成分,有助于识别心电信号中...

Global site tag (gtag.js) - Google Analytics