python 包封装的相关介绍

28 篇文章 0 订阅

1. 新建一个需要打包的目录:

  • 案例目录名:package_test, 后面提到这个目录就用 package_test 代替;

2. 把需要封装的包文件夹复制到 package_test 下:

  • 案例需要封装的包文件夹为:demo, 案例需要封装的包文件为:py_modiles.py,后面提到这个包文件夹就用 demo 代替;
    在这里插入图片描述

3. 确认 demo 中有 init.py 文件;

  • 同理, 如果demo还有子包(子目录),那么它的子包也必须有 init.py 文件;
  • 注意:init.py 文件中的类或方法 在开发中使用时 import导入demo后能用dir方法看到;
    在这里插入图片描述
    在这里插入图片描述

4. 在 package_test 目录下 新建 setup.py 文件,这里重要是打包时的一些设置:

from setuptools import setup, find_packages

name = 'demo'
with open('requirements.txt', 'r') as f:
   # requirements.txt 可用 pipreqs ./ 命令生成
   requirements = [i for i in f.readlines() if i.strip()]

with open('README.md', 'r') as f:
   reade_me = f.read()


setup(
   # 程序的官网地址, 我们可以写gitlab的项目地址
   url='https://github.com',
   # 打包起来的包的文件名
   name=name,
   # 版本号,添加为打包文件的后缀名
   version='1.0.0',
   # 作者: iyourcar
   author='',
   # 作者的邮箱: 
   author_email='',
   # 对项目简短的一个形
   description='just for test',
   # 包的详细描述, 相当于readme
   long_description=reade_me,
   # 要打包的源文件的目录名, 一般用find_packages()
   packages=find_packages(),
   # 需要安装的依赖包
   install_requires=requirements,
   # packages参数包含有的包之外的,需要打包的python文件列表;注意:packages, py_modules两个参数配置至少一个
   py_modules=['py_modules'],
   # console_scripts 指明了命令行工具的名称;可在命令行直接使用的命令,等号前面指明了工具包的名称,等号后面的内容指明了程序的入口地址; 这里可以有多条记录,这样一个项目就可以制作多个命令行工具了
   # 如:demo_sql是命令,执行方法:cmd_test
   entry_points={
      'console_scripts': [
         # 相当于pycase == pycase/case.py.cmd_test
         'demo_sql = demo.util_mysql:cmd_test'
      ]
   },
   # 参数决定包是否作为一个 zip 压缩后的 egg 文件安装(True),还是作为一个以 .egg 结尾的目录安装(False), 有些环境不支持zip安装,可设置为False
   zip_safe=False
)

5. 配置 MANIFEST.in 文件: 需要一起打包的非py文件

include *.md
include requirements.txt

# Include the data files, 如果有图片或其它文件等,可以把下一行的注释去掉
# recursive-include data *

6. 准备目录结果:

在这里插入图片描述
更多详情可参考: http://blog.konghy.cn/2018/04/29/setup-dot-py/

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值