每天要以两倍的速度学习

不想平凡所以必须Pow(努力,n)(n>1)

导航

【WXSC】python自定义包

沉淀自己的一些脚本和算法,托管在github或gitee上;使用的时候,直接pip安装即可,不用每次都去拷贝源码,修改源码

1. 构建一个本地包

  • setup.py文件 必须
  • MANIFEST.in文件: 可选 将非python的数据/配置文件打包到本地包里
  • scripts文件夹: 可选 生成一些命令行脚本

其中setup.py文件是必须的,下面两个文件是辅助用途

1.1 如何构建一个包

创建一个名为demo的安装包,里边包含一个add的算法
demo

1.创建如上述结构的文件和文件夹
2.生成setup.py文件

from setuptools import find_packages, setup

setup(name='add',  # 包名
      version='0.0.1',  # 版本号
      description='add function',
      long_description='',
      author='noname',
      author_email='noname@emal.com',
      url='https://gitee.com/cvding/package.name.git',
      license='',
      install_requires=['numpy>=1.4', 'matplotlib'],
      extras_require={},
      dependency_links=[
          "https://pypi.tuna.tsinghua.edu.cn/simple",
          "http://mirrors.aliyun.com/pypi/simple"
      ],
      classifiers=[
          'Intended Audience :: Developers',
          'Operating System :: OS Independent',
          'Natural Language :: Chinese (Simplified)',
          'Programming Language :: Python',
          'Programming Language :: Python :: 3',
          'Programming Language :: Python :: 3.2'
          'Programming Language :: Python :: 3.3',
          'Programming Language :: Python :: 3.4',
          'Programming Language :: Python :: 3.5',
          'Topic :: Utilities'
      ],
      keywords='',
      packages=find_packages('src', exclude=["examples", "tests", "project"]),  # 必填
      package_dir={'': 'src'},  # 必填
      include_package_data=True,
      scripts= [
      ],
)
  1. 生成add.py文件
def add(x, y):
    return x+y
  1. 导入add()函数 修改src/add/__init__.py文件
from .add import add

到此包已经构建完成

1.2 如何使用add包

  1. 离线使用
# add root director(include setup.py)
$cd add
$python setup.py
$pip install dist/add-0.0.1.tar.gz
from add import add

print(add(1, 2))
# output: 3
  1. 在线使用git管理
  • 首先上传到github或gitee
  • pip install git+https://github.com/xxx/add.git
from add import add

print(add(1, 2))
# output: 3
  1. 在线使用pypi

包名最好特殊一点

  • pypi上注册一个账号
  • 在setup.py所在目录执行python setup.py register
  • 使用python setup.py sdist生成dist/add-0.0.1.tar.gz
  • 使用python setup.py upload上传包
  • 在任意地方使用pip install add
from add import add

print(add(1, 2))
# output:3

1.3 如何加入可执行脚本

  1. 建立脚本
#!/usr/bin/env python3

import argparse
from add import add

if __name__ == '__main__':
    parser = argparse.ArgumentParser()
    parser.add_argument('-a', type=int, '--anum')
    parser.add_argument('-b', type=int, '--bnum')
    
    args = parser.parse_args()
    
    print(add(args.anum, args.bnum))
  1. 修改setup.py
# setup.py

# ....
scripts= ['scripts/add.parse.py']
# ....

  1. 使用脚本add.parse.py
# 安装好add库,在terminal中使用脚本
add.parse.py -a 1 -b 2
# output: 3

1.4 如何加入依赖数据(配置文件,系统字体等资源)

  1. 在src/add文件夹新建data文件夹(也可以是其他名称)
  2. 修改MANIFEST.in文件
# 1.单个导入:将data文件夹中的数据文件全部导入包中
include src/add/data/*
# 2.循环导入:将project文件夹中的文件全部导入到包中
# recursive-include src/add/project *.*

posted on 2022-10-05 21:00  Duke D  阅读(271)  评论(0编辑  收藏  举报