首页 > 编程语言 >Python包和模块管理

Python包和模块管理

时间:2024-11-14 20:08:24浏览次数:1  
标签:__ 管理 Python py 导入 模块 import my

二、模块

  1. 模块是什么?模块就是一个.py文件,可以定义函数、类和变量,模块内也可能包含可执行的代码。

  2. 模块的作用

    • 代码重用:模块可以将代码划分为更小的单元,方便在其他文件中重复使用。
    • 组织和结构化代码:模块帮助将大型代码库分解成逻辑单元,使代码结构更清晰。
    • 避免命名冲突:模块引入了命名空间机制,可以有效避免命名冲突。例如,两个模块中的相同变量名不会互相干扰。
    • 便于维护:通过模块化,开发者可以专注于一个模块的功能,便于修复错误、扩展功能或进行测试。
    • 引入标准库和第三方库:Python提供了丰富的标准库模块,可以直接导入使用。此外,还可以通过pip引入第三方模块。
  3. 模块的使用

    • 导入整个模块import math
    • 导入模块中指定的函数from math import sqrt
    • 给模块起别名import math as m
  4. 如果某个模块A内部有可执行代码,其它模块导入A时,怎么避免执行这些可执行代码?

    • __name__:当在本模块中执行时,会被替换成__main__,如果其他模块使用到了该模块,就变成了该模块名。

      • 举例子

        # my_module.py 代码
        
        def sayHello(name) :
            print("hello", name)
        
        
        sayHello("ouyang")
        print(__name__)
        
        # main.py 代码
        from my_module import sayHello
        sayHello("xx")
        

        结果

        ouyang@ouyangdeMacBook-Pro python_learn % python3 my_module.py
        hello ouyang
        __main__
        ouyang@ouyangdeMacBook-Pro python_learn % python3 main.py
        hello ouyang
        my_module
        hello xx
        
        
        # 上述结果可以看见,在my_module中,__name__的结果就是__main__
        # 而在main.py中,就是模块名
        
    • 所以,当某些模型内部代码,不希望其他模型执行时,可以做如下操作

      if __name__ == "__main__":
          sayHello("ouyang")
      
  5. 当使用from 模块 import *时,可以使用__all__ = ['函数名'],来限制,只能导入__all__中的。

三、包

  1. 包(Package) 是一个组织管理模块的文件夹。包本质上是一个包含多个模块的目录,其中每个模块都是一个 .py 文件。包的作用是提供一种层次化的方式来组织和管理多个相关的模块,以便于在大型项目中有效地管理代码。
  2. 包的结构
    • 目录:包是一个目录,其中包含多个模块或子包
    • __init__.py 文件:每个包目录都必须包含 __init__.py 文件,来告诉Python解释器该目录是一个包。它的存在允许你在包和包内的模块之间建立导入关系。__init__.py 文件可以是空的,也可以包含初始化代码,在包被导入时自动执行。
  3. 使用
    • 导入包中的模块import my_package.module1或者from my_package import module1
      • 前者使用时要my_package.module1.xxx
      • 后者只需要module1.xxx
    • 导入包中的某个模块的某个函数from my_package.module1 import sayBye
      • 注意,没有import my_package.module1.sayBye这种用法。
  4. 包的导入机制
    • 绝对导入:使用完整的路径导入模块或包
    • 相对导入:在包内部使用相对路径导入模块或包。
  5. 可以在__init__.py中,使用__all__控制允许导入的模块 ,同样,这只能针对from 包 import *有效

四、第三方库

  1. 数据处理与分析
    • NumPy:用于数值计算的基础库,提供多维数组对象和丰富的数学函数。
    • Pandas:用于数据分析和操作,提供数据表格(DataFrame)结构,适合数据清洗和操作。
    • Matplotlib:绘图库,用于创建静态、动态和交互式可视化。
    • Seaborn:基于Matplotlib的高级可视化库,特别适用于统计数据的可视化。
    • SciPy:用于科学和工程计算,扩展了NumPy的功能。
  2. 机器学习与人工智能
    • Scikit-Learn:用于机器学习的工具包,支持分类、回归、聚类等基本算法。
    • TensorFlow:深度学习框架,由Google开发,支持神经网络的构建和训练。
    • PyTorch:另一个流行的深度学习框架,由Facebook开发,使用灵活且易于调试。
    • Keras:基于TensorFlow的高级神经网络库,适合快速构建和实验神经网络。
    • XGBoost:用于提升树模型的库,适合构建高效的梯度提升模型,常用于竞赛和实际应用。
  3. 网络开发
    • Django:一个全功能的Web框架,适合快速构建复杂的Web应用。
    • Flask:轻量级Web框架,适合快速原型开发和小型应用程序。
    • Requests:简化HTTP请求的库,适合与Web API交互。
    • Beautiful Soup:用于解析和抓取HTML和XML内容,常用于网络爬虫。
    • Scrapy:功能强大的网络爬虫框架,适合构建高效的数据爬取项目。
  4. 数据可视化
    • Plotly:用于交互式图表的库,支持多种图形类型,包括3D和金融图表。
    • Bokeh:创建交互式可视化图表,适合大数据量可视化。
    • Altair:基于Vega和Vega-Lite的声明性数据可视化库,适合快速制作简单的可视化。
  5. pip基本使用
    • 安装包
      • pip install 包名:安装指定的包,
      • pip install 包名==版本号:安装指定的版本
      • pip install -r requirements.txt:从文件中安装
      • pip install -i https://pypi.tuna.tsinghua.edu.cn/simple package_name:使用指定源安装
    • 卸载包
      • pip uninstall package_name
    • 更新包
      • pip install --upgrade package_name
    • 查看已安装的包
      • pip list:列出已安装的包
      • pip list --outdated:检查包是否有可用的更新

标签:__,管理,Python,py,导入,模块,import,my
From: https://www.cnblogs.com/ouyangxx/p/18546706

相关文章

  • 基于nodejs+vue助力成长-中学生身体素质管理平台[开题+源码+程序+论文]计算机毕业设计
    本系统(程序+源码+数据库+调试部署+开发环境)带文档lw万字以上,文末可获取源码系统程序文件列表开题报告内容一、选题背景关于中学生身体素质管理的研究,现有研究主要以整体学生群体的体质健康状况评估等宏观层面为主,专门针对中学生身体素质管理平台的构建研究较少。在国内外,......
  • 基于nodejs+vue住院管理系统[开题+源码+程序+论文]计算机毕业设计
    本系统(程序+源码+数据库+调试部署+开发环境)带文档lw万字以上,文末可获取源码系统程序文件列表开题报告内容一、选题背景关于住院管理系统的研究,现有研究主要集中在大型综合性医院的整体管理流程优化方面,以提高医院运营效率为主。专门针对住院管理系统中各个具体功能模块(如......
  • 自学习python之字符串2
    字符串:格式化format()方法1.位置参数(字段)2.关键字参数(相当于变量赋值)如果位置参数和关键字参数结合使用时,位置参数必须在关键字参数前面,否则报错打印花括号 格式化符号1.字符串格式化符号含义2.格式化操作符辅助命令m.n:主要是.n,m一般没用3.字......
  • K-Means聚类分析以及误差平方和SSE(Python实现)
    K-means聚类的原理。K-Means算法的目标是将原始数据分为K簇,每一簇都有一个中心点,这也是簇中点的均值点,簇中所有的点到所属的簇的中心点的距离都比到其他簇的中心点更近。K-means聚类的算法流程。1、随机确定K个点作为质心(在本次实验中,我在数据中使用随机数选择了K个点作为初始......
  • python+vue基于django/flask新农村综合风貌展示平台java+nodejs+php-计算机毕业设计
    目录技术栈和环境说明具体实现截图预期达到的目标系统设计详细视频演示技术路线解决的思路性能/安全/负载方面可行性分析论证python-flask核心代码部分展示python-django核心代码部分展示研究方法感恩大学老师和同学源码获取技术栈和环境说明本系统以Python开发语言......
  • python调用扣子coze智能体示例
    """版本号:1.0日期:2024/11/14描述:"""importuuidimportjwtimporttimeimportrequests#OAuth应用的相关信息,需从扣子平台获取并替换APP_ID=""#auth应用idPUBLIC_KEY_FINGERPRINT=""#公钥PRIVATE_KEY_PATH="private_......
  • 企业级工位管理:Spring Boot技术突破
    2相关技术2.1MYSQL数据库MySQL是一个真正的多用户、多线程SQL数据库服务器。是基于SQL的客户/服务器模式的关系数据库管理系统,它的有点有有功能强大、使用简单、管理方便、安全可靠性高、运行速度快、多线程、跨平台性、完全网络化、稳定性等,非常适用于Web站点或者其他......
  • 工位管理优化:Spring Boot企业级系统
    3系统分析3.1可行性分析通过对本企业级工位管理系统实行的目的初步调查和分析,提出可行性方案并对其一一进行论证。我们在这里主要从技术可行性、经济可行性、操作可行性等方面进行分析。3.1.1技术可行性本企业级工位管理系统采用SSM框架,JAVA作为开发语言,是基于WEB平台的......
  • <Project-23 Navigator Portal> Python flask web 网站导航应用 可编辑界面:添加图片、UR
    目的:浏览器的地址簿太厚,如下图:开始,想给每个Web应用加icon来提高辨识度,发现很麻烦:createimage,resize,还要挑来挑去,重复性地添加代码。再看着这些密密麻麻的含有重复与有规则的字符,真刺眼!做这个PortalWeb应用来进行网站应用导航,docker部署后,占用端口:9999,可以在ap......
  • 第八课 Python自动化之selenium
    python+seleniumselenium是一个第三方库,python有很多库;1、什么是ui自动化?通过模拟手工操作用户ui页面的方式,用代码去实现自动化操作和验证的行为。2、ui自动化的优点?(1)解决重复性的功能测试和验证(2)减少测试人员在回归测试时用例漏测和验证点的漏测(3)减少冒烟测试,回归测试的......