沉淀自己的一些脚本和算法,托管在github或gitee上;使用的时候,直接pip安装即可,不用每次都去拷贝源码,修改源码
1. 构建一个本地包
-
setup.py
文件 必须 -
MANIFEST.in
文件: 可选 将非python的数据/配置文件打包到本地包里 -
scripts
文件夹: 可选 生成一些命令行脚本
其中setup.py文件是必须的,下面两个文件是辅助用途
1.1 如何构建一个包
创建一个名为
demo
的安装包,里边包含一个add的算法
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='[email protected]',
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= [
],
)
- 生成add.py文件
def add(x, y):
return x+y
- 导入add()函数 修改src/add/__init__.py文件
from .add import add
到此包已经构建完成
1.2 如何使用add包
- 离线使用
# 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
- 在线使用git管理
- 首先上传到github或gitee
pip install git+https://github.com/xxx/add.git
from add import add
print(add(1, 2))
# output: 3
- 在线使用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 如何加入可执行脚本
- 建立脚本
#!/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))
- 修改setup.py
# setup.py
# ....
scripts= ['scripts/add.parse.py']
# ....
- 使用脚本add.parse.py
# 安装好add库,在terminal中使用脚本
add.parse.py -a 1 -b 2
# output: 3
1.4 如何加入依赖数据(配置文件,系统字体等资源)
- 在src/add文件夹新建data文件夹(也可以是其他名称)
- 修改MANIFEST.in文件
# 1.单个导入:将data文件夹中的数据文件全部导入包中
include src/add/data/*
# 2.循环导入:将project文件夹中的文件全部导入到包中
# recursive-include src/add/project *.*
标签:WXSC,Language,自定义,python,setup,py,add,import
From: https://www.cnblogs.com/miracled/p/qu-sou-cang-ji-hua-zi-ding-yi-bao.html