选择一个包名
比如你想在终端输入
funy时就执行相关指令,这个时候funy就是你的包名
- 全小写
- 不要和电脑上已有的包名重复(比如你电脑上有
git了, 你的包名就不能再叫git) - 使用下划线分隔单词或者什么都不用(不要使用连字符)
目录结构
funy/
bin/
funy
funy/
__init__.py
setup.py
- 最外层的目录是我们版本管理工具的根目录, 例如
funy.git. - 子目录也叫
funy(也就是你的python包) , 代表Python module. bin目录下funy也是python文件,不过需要把.py后缀给去掉- 这个文件主要是解析我们在命令行输入的各种参数信息的
- 代码如下所示
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import sys
import argparse
version = "v1.0.0"
parser = argparse.ArgumentParser(description="funy 命令行工具 {}".format(version))
parser.add_argument("-v", "--version", help="版本号", action="store_true")
parser.add_argument("-p", "--print", help="大写字符转换")
args = parser.parse_args()
if len(sys.argv) == 1:
parser.print_help()
if args.version:
print(version)
创建包文件里面的具体代码逻辑
funy/
bin/
funy
funy/
__init__.py
funy.py
setup.py
funy.py代码内容
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
def print_args(str):
print(str.upper())
编写bin/funy文件
- 导入包文件
from funy import funny
- 调用包文件的函数
funny.print_args(args.print)
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import sys
import argparse
from funy import funny // 导入包文件
version = "v1.0.0"
parser = argparse.ArgumentParser(description="funy 命令行工具 {}".format(version))
parser.add_argument("-v", "--version", help="版本号", action="store_true")
parser.add_argument("-p", "--print", help="大写字符转换")
args = parser.parse_args()
if len(sys.argv) == 1:
parser.print_help()
if args.version:
print(version)
if args.print:
funny.print_args(args.print) // 调用包文件里面的内容
文件依赖
如果你开发一个正常的python包,那就不可能只是用一个python文件开发的,会写多个文件和使用三方的包 我们再新建一个文件用于打印绿色的字符串
目录结构如下
funy/
bin/
funy
funy/
__init__.py
funy.py
green.py
setup.py
green.py代码内容
GREEN = "\033[92m"
END = "\033[0m"
def green(msg):
print(GREEN + msg + END)
funy.py代码内容- 导入依赖的其他python文件
from .green import green- 调用函数
green(str)
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
from .green import green // 导入头文件
def print_args(str):
print(str.upper())
def print_green_args(str):
green(str) // 调用方法
修改bin/funy文件内容
bin/funy代码内容
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import sys
import argparse
from funy import funny
version = "v1.0.0"
parser = argparse.ArgumentParser(description="funy 命令行工具 {}".format(version))
parser.add_argument("-v", "--version", help="版本号", action="store_true")
parser.add_argument("-p", "--print", help="大写字符转换")
parser.add_argument("-pg", "--print_green", help="大写字符转换")
args = parser.parse_args()
if len(sys.argv) == 1:
parser.print_help()
if args.version:
print(version)
if args.print:
funny.print_args(args.print)
if args.print_green:
funny.print_args(args.print_green)
到此为止我们就完成了代码的开发了
setup.py 文件的编辑
from setuptools import setup, find_packages
setup(
name="funy", // 包名
version="1.0.0", // 包版本
include_package_data=True,
packages=find_packages(),
install_requires=[
"frida", // 需要安装的第三库
],
scripts=['bin/funy'], // 终端脚本
)
安装
在setup.py文件所在的目录下,执行下面命令
python3 setup.py install
完成后就可以在终端命令行中使用
funy -v
v1.0.0