Python
  • 01、基础篇
    • Python基础篇-001. Python简介
    • Python基础篇-002. Hello World
    • Python基础篇-003. 变量类型(一)
    • Python基础篇-004. 常量
    • Python基础篇-005. 运算符
    • Python基础篇-006. 条件语句
    • Python基础篇-007. 循环语句
    • Python基础篇-008. 变量类型(二)
    • Python基础篇-009. 函数(一)
    • Python基础篇-010. 函数(二)
    • Python基础篇-011. 变量作用域
    • Python基础篇-012. 自定义类(一)
    • Python基础篇-013. 自定义类(二)
    • Python基础篇-014. 模块
    • Python基础篇-015. 异常处理
  • 02、进阶篇
    • Python进阶篇-001. 文件IO
    • Python进阶篇-002. main.py
    • Python进阶篇-003. init.py
    • Python进阶篇-004. all
    • Python进阶篇-005. private
    • Python进阶篇-006. lambda表达式
    • Python进阶篇-007. 推导式
    • Python进阶篇-008. 迭代器
    • Python进阶篇-009. 生成器
    • Python进阶篇-010. 多线程
    • Python进阶篇-011. 数据处理基础函数(一)
    • Python进阶篇-012. 数据处理基础函数(二)
    • Python进阶篇-013. 包管理(一)
    • Python进阶篇-014. 包管理(二)
    • Python进阶篇-015. 包管理(三)
    • Python进阶篇-016. 包管理(四)
    • Python进阶篇-017. requirements.txt
    • Python进阶篇-018. venv
    • Python进阶篇-019. 头部注释
    • Python进阶篇-020. 优雅传参
    • Python进阶篇-021. 连接MySQL
  • 03、实践篇
    • Python实践篇-001. GitBook小工具(一)
    • Python实践篇-002. GitBook小工具(二)
Powered by GitBook
On this page
  • 一、创作声明
  • 二、前言
  • 三、包与模块
  • 四、写在最后
  1. 02、进阶篇

Python进阶篇-014. 包管理(二)

[toc]

一、创作声明

进阶篇是对基础篇的补充,这里面更多的是各种常用库、高级语法糖的教程,因此,进阶篇的内容会比较零碎。在创作过程中,同样会借助ChatGPT来辅助。

二、前言

本章重点是搞明白python中包和模块的概念。

三、包与模块

什么是包,什么是模块。通过示例来看。

1、第一个例子

一般场景下,比如我们要用某个某模块,我们会这么干: 1、第一步,安装包

pip install package_name

2、第二步,代码中引入包或者模块

import package
from package import module

3、第三步,使用模块内函数

module.hello()

2、第二个例子

一般来说,我们自定义包,工程结构如下:

|-- project
|--|-- sub_package
|--|--|-- __init__.py
|--|--|-- module_a.py
|--|--|-- module_b.py
|--|--|-- sub_sub_package
|--|--|--|-- __init__.py
|--|--|--|-- module_a.py
|--|-- setup.py

3、第三个例子

setup.py一般来说编写内容如下:

from setuptools import setup, find_packages

setup(
    name='your_package_name',
    version='1.0.0',
    author='Your Name',
    author_email='your_email@example.com',
    description='A short description of your package',
    packages=find_packages(),
    install_requires=[
        'dependency1',
        'dependency2'
    ],
)

4、解释说明

上面三个例子结合起来看,例子一中install的package_name其实是例子三中的your_package_name,这个package_name install之后,你的本地就会有这个package_name包含的所有packages了。

这里有俩package,其实是不同的概念,一个是使用pip install的包,对应的是your_package_name,这个包咱们可以理解为与python无关。真正有关的是packages,我们在import的时候用的是这个。

这时候回过头来看例子二,sub_package对应的就是packages。在应用中,我们一般这么干:

from sub_package import module_a
module_a.hello()

简单点说,这里应该是有三层概念,python包安装包,python包,python模块。python包安装包里面可能有多个python包,python包下面可能有多个python模块。具体到代码,python模块就是一个个py文件,python包就是包含这堆py文件的文件夹(文件夹下面得有__init__.py)。

四、写在最后

更多技术分享,点击传送门:https://github.com/maxiaolu66/profile

PreviousPython进阶篇-013. 包管理(一)NextPython进阶篇-015. 包管理(三)

Last updated 1 year ago