1、安装setuptools、wheel

2、创建README.md

3、创建setup.py

from setuptools import setup, find_packages



setup(
    name = "silver_needle",
    version = "0.1.0",
    # keywords = ("pip", "okta", "cli", "cmd", "steven"),
    description = "okta cli",
    # long_description = long_description,
    # long_description_content_type='text/markdown',
    python_requires=">=3.5.0",
    license = "MIT Licence",

    # url = "https://github.com/stevenQiang/okta-cmd",
    # author = "wutong",
    # author_email = "qianggao7@gmail.com",

    packages = find_packages(),
    include_package_data = True,
    # install_requires = ["requests", "click"],
    platforms = "any",

    # scripts = [],
    # entry_points = {
    #     'console_scripts': [
    #         'okta-cmd=oktacmd:main_cli'
    #     ]
    # }
)
  • name: 该package的名字,该名字可以由字母、数字、-组成,注意这个名字不能与其它已经上传到pypi.org的项目相同
  • version: 这个就是包的发布版本,可以直接写在这,也可以从其它地方引用
  • author: author可以用来指定该package的作者信息
  • author_email: 这个也是指定该package的作者信息
  • description: 对当前package的较短的总结
  • long_description: 是对当前package的详细说明。这一详细说明将被展示在Python Package Index上当前项目的主页
  • long_description_content_type: 指定了long_description内容的格式。在当前情况下为markdown
  • url: 是当前package的主页链接。大多数情况下这是一个GitHub, GitLab, Bitbucket或者其他代码存储服务的链接
  • packages: 是一系列应当包含在发布软件包文件(distribution package)中的可被import的python包文件。我们可以手动在此处罗列所有文件。
    或者如本例中一样使用find_packages()函数自动包含所有的python包文件以及子包文件。
  • python_requires: python依懒版本
  • classifiers: 指定了当前package的其他元信息(metadata)。例如当前package兼容的python版本和操作系统,当前package提供的功能的类型,
    当前package的许可证等等。我们应当总是至少包括当前package所支持的python版本,操作系统和许可证。注意此处定义的classifiers关键字
    所包含的信息应当符合PyPI的规定。
  • install_requires: 指定了当前package所依赖的其他python类库。这些指定的python类库将会在本package被安装的时候一并被安装。
  • platforms: 程序适用的软件平台列表
  • keywords: 程序的关键字列表
  • include_package_data: 是否自动包含包内所有受版本控制(cvs/svn/git)的数据文件,默认True
  • entry_points: 用来支持自动生成cli命令

4、python setup.py bdist_wheel