文章目录

  • python——包与模块的使用
  • 包(package)的含义
  • 默认`__init__.py`文件含义
  • 测试包名的引用
  • 制作模块
  • `setup.py`文件
  • 构建模块
  • 生成发布压缩包
  • 安装模块
  • 卸载模块


python——包与模块的使用

包(package)的含义

在python当中,package是一个文件夹,该文件夹下有__init__.py文件。在其他.py文件如果想要使用该包下所有封装的模块,只需要import 该package即可使用,

默认__init__.py文件含义

该文件下需要使用from . import 模块名(该包目录下封装的模块)来导入需要使用的模块

from . import 模块名1 #"."表示该包目录 from . import 模块名2

测试包名的引用

  1. 创建meassge package
  2. 在包下创建发送模块(send.py)以及接收模块(receive.py)
  3. 创建导入包测试文件(test.py)
  4. 在包下的__init__.py文件下导入所需模块

在send.py定义发送函数

def set_send(text):
    print("发送消息:{}".format(text))

在receive.py定义接收函数

def get_rivice():
    return "接收来自10086的信息"

__init__.py中导入模块

from . import send
from . import receive

在test.py文件中测试

import message

message.send.set_send("hello,python")
tex = message.receive.get_rivice()
print(tex)

C:\Users\qun\AppData\Local\Programs\Python\Python37\python.exe C:\Users\qun\Desktop\python包模块\test.py
发送消息:hello,python
接收来自10086的信息

进程已结束,退出代码0

制作模块

当需要将自己的package分享时可以将其打包分享

制作发布压缩包过程如下:

  • 创建setup.py文件
  • 构建模块
  • 生成发布压缩包

setup.py文件

# 导入相关模块
from distutils.core import setup

setup(name="message",  # 包名
      version="1.0",  # 版本号
      description="message的发送与接收模块",  # 描述信息
      long_description="完整的发送以及接收模块",  # 完整的描述信息
      author="author_name",  # 作者名
      author_email="example@example.com",  # 作者邮箱
      url="url地址",  # url相关地址
      py_modules=["message.send",  # python相关模块
                  "message.receive"]
      )

构建模块

python3 setup.py build

[root@VM-0-16-centos Python]# python3 setup.py build
running build
running build_py
creating build
creating build/lib
creating build/lib/message
copying message/__init__.py -> build/lib/message
copying message/send.py -> build/lib/message
copying message/receive.py -> build/lib/message

生成发布压缩包

python3 setup.pu sdist

[root@VM-0-16-centos Python]# python3 setup.py sdist
running sdist
running check
warning: sdist: manifest template 'MANIFEST.in' does not exist (using default file list)

warning: sdist: standard file not found: should have one of README, README.txt

writing manifest file 'MANIFEST'
creating message-1.0
creating message-1.0/message
making hard links in message-1.0...
hard linking setup.py -> message-1.0
hard linking message/__init__.py -> message-1.0/message
hard linking message/receive.py -> message-1.0/message
hard linking message/send.py -> message-1.0/message
creating dist
Creating tar archive
removing 'message-1.0' (and everything under it)

在当前目录下会自动生成一个dist目录

[root@VM-0-16-centos Python]# ls dist/
message-1.0.tar.gz

可以看到dist目录下存在压缩文件

当其他人拿到我们的压缩包时,操作步骤

安装模块

tar -zxvf message-1.0.tar.gz	#解压
python3 setup.py install	#安装

安装之后使用python导入模块时就能正常使用

卸载模块

直接从安装目录下,把安装模块的目录删除即可

cd /usr/local/lib/python3.6/site-packages
rm -rf message*

nstall #安装

------

安装之后使用python导入模块时就能正常使用

### 卸载模块

直接从安装目录下,把安装模块的目录删除即可

```python
cd /usr/local/lib/python3.6/site-packages
rm -rf message*