如何制作pip安装包 --python

版权声明:转载请声明转自Juanlyjack https://blog.csdn.net/m0_38088359/article/details/83656872

1、新建一个文件夹,文件名可以自定义,用来存放文档。
在这里插入图片描述
2、再新建一个文件夹,文件夹名自定义,但此处一般为工程名,我命名为packer。

3、分别新建LICENCE、README.md(markdown文件)、requirements.txt、setup.py文件,注意文件尾缀。
在这里插入图片描述

4、在pycharm编译器里面打开这个文件夹,然后新建一个file,命名为“.gitignore",用来在checkin的时候忽略掉一些文件,而此处一般选择忽略的文件为:

.idea/ 
__pycache__/

在这里插入图片描述

用pycharm打开的目录路径下会默认有一个.idea/ 文件夹。

5、编辑自己的 README.md 说明文档
内容包括:

# 概括

## 说明
本包名字为*packer*,使用方法包括...

### 打包方法

### 安装方法

### 参数说明

### 错误反馈

6、编辑setup.py文件内容

按照官方格式:

from __future__ import print_function
from setuptools import setup, find_packages
import sys

setup(
    name="packer",
    version="0.1.0",
    author="",  #作者名字
    author_email="",
    description="Python Framework.",
    license="MIT",
    url="",  #github地址或其他地址
    packages=find_packages(),
    include_package_data=True,
    classifiers=[
        "Environment :: Web Environment",
        'Intended Audience :: Developers',
        'License :: OSI Approved :: MIT License',
        'Natural Language :: Chinese',
        'Operating System :: MacOS',
        'Operating System :: Microsoft',
        'Operating System :: POSIX',
        'Operating System :: Unix',
        'Topic :: NLP',
        'Topic :: Software Development :: Libraries :: Python Modules',
        'Programming Language :: Python :: 3.5',
        'Programming Language :: Python :: 3.6',
    ],
    install_requires=[
            'pandas>=0.20.0',  #所需要包的版本号
            'numpy>=1.14.0'   #所需要包的版本号
    ],
    zip_safe=True,
)

7、在工程文件夹"packer"目录下新建一个utils的package,默认自带一个__init__.py文件,即调用该包就自动执行该文件。然后在包里面新建一个自己想要拥有的函数。
在这里插入图片描述

8、在工程名文件夹下再新建一个__main__.py文件,用来执行函数。
在这里插入图片描述

9、最后打开原来最开始用来存放文档新建的文件夹,在此处位置打开命令窗口,在命令窗口中输入:
python .\setup.py sdist
最终生成一个dist文件夹,在文件夹里面就有一个创建好的安装包
在这里插入图片描述

10、经过以上步骤已经可以生成一个pip可安装的工程包,安装非常简单。
直接在命令窗口输入:
pip install .\dist\packer-0.1.0.tar.gz
即可完成安装。
注意:
安装时先会检查是否满足安装的条件,比如pandas的包的版本号等。

11、检查是否安装成功
在原来的packer文件夹下打开命令窗口,输入:
python -m packer
就可以看到输出,也即包安装成功。


当然实际开发当中为了可以在命令窗口直接运行代码,又不得不输入参数的时候,必须要为包添加一个输入参数的功能

12、添加接受参数的功能
在刚刚编辑的__main__.py文件下,修改成一下格式:

from argparse import ArgumentParser,ArgumentDefaultsHelpFormatter
from packer.utils.common import hello_world


def parse_args():
    parser = ArgumentParser(formatter_class=ArgumentDefaultsHelpFormatter,
                            conflict_handler='resolve')
    parser.add_argument("-mess","--mss",help="type your message")
    args = parser.parse_args()
    return args


def main(args):
    message = args.mess
    output = hello_world(message)
    print(output)


if __name__ == "__main__":
    main(parse_args())

然后重新打包,也即上面提到的python .\setup.py sdist命令,接着在命令窗口下重新安装该生成的安装包。

安装好之后在命令窗口输入:(-mess 是对应的参数)
python -m packer -mess xxx
则在窗口就会输出对应的:
Hello xxx

此外,因为已经pip install这个包了,则在这个包安装的虚拟环境下即可随意地import这个包,并调用里面的函数。
调用方法:
import packerfrom packer.utils.common import hello_world
示例:

from packer.utils.common import hello_world

hello_world("zz")

输出:

'Hello zz'

最后注意:
在__main__.py文件里面需要注意编程规范:
(1)如果没有类,则函数之间要空两行
(2)import与函数之间要空两行
(3)单词不要编写错误

猜你喜欢

转载自blog.csdn.net/m0_38088359/article/details/83656872