Pypi 发布自己的包

Posted edhg

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Pypi 发布自己的包相关的知识,希望对你有一定的参考价值。

  1. 注册Pypi
  2. 验证注册邮箱
  3. 用我的一个包(git-clone)举例
    • 供参考项目:
    • 必须的文件及文件夹
      • 技术图片
      1. setup.py

        from setuptools import setup, find_packages
        
        setup(
            name='git-clone',   # 包名
            version='1.0.5',    # 版本号
            description=('Git clone by downloading zip and decompressing it'),  # 简介
            long_description=open('README.rst').read(), # 读取README.rst的内容, 在pypi里包主页显示
            author='twfb',  # 作者名
            author_email='[email protected]',    # 作者邮箱
            maintainer='twfb',  # 维护者名
            maintainer_email='[email protected]',    # 维护者邮箱
            license='BSD License',
            packages=find_packages(),
            platforms=["all"],
            include_package_data=True,
            url='https://github.com/dhgdhg/git-clone/', # 包主页显示的链接
            classifiers=[
                'Development Status :: 4 - Beta', 'Operating System :: OS Independent',
                'Intended Audience :: Developers',
                'License :: OSI Approved :: BSD License',
                'Programming Language :: Python',
                'Programming Language :: Python :: Implementation',
                'Programming Language :: Python :: 2',
                'Programming Language :: Python :: 2.7',
                'Programming Language :: Python :: 3',
                'Programming Language :: Python :: 3.4',
                'Programming Language :: Python :: 3.5',
                'Programming Language :: Python :: 3.6',
                'Topic :: Software Development :: Libraries'
            ],
            entry_points={  # 可在命令行中执行的命令及对应的脚本, 如果没有该需求可以不用写
                'console_scripts': ['git-clone=git_clone.git_clone:execute'],
            }),
            # install_requires=['scrapy>=1.0.0', 'selenium>=3.9.0']) #我这里没用到, 这个是安装你的包环境要求
      2. README.rst
        • 懒得写, 我就直接放github的链接了
        https://github.com/dhgdhg/git-clone/
      3. git_clone文件下的git_clone.py
        • 下面就是该是内容了
        def git_clone():
            # 你写的包里面的方法
            pass
        
        def execute():
            # 没有命令行命令需求的不用写该函数
        
            '''
            setup.py中指定的脚本文件
            entry_points={  # 可在命令行中执行的命令及对应的脚本
                'console_scripts': ['git-clone=git_clone.git_clone:execute'],
            }),
            这里再解释下
            git-clone: 就是你在命令行中调用的命令
            execute: 执行的函数名
            '''
            import sys
            git_clone(sys.argv[1], sys.argv[2], sys.argv[3])
            # sys.argv 命令中的参数
      4. git_clone文件下的__init__.py
        python from .git_clone import git_clone
    • 可选的文件及文件夹
      1. README.md
        • 用markdonw书写, 上传到github时用于项目介绍
      2. requirements/requirements.txt
      • 环境要求 方便直接安装需要的库
  4. 生成pip安装文件
    • python setup.py sdist bdist_wheel --universal
    • 你会发现多个文件夹dist
      • dist中的文件你可以先用pip install 测试下能不能用
  5. 上传到pypi
    • 安装twine
      • pip install twine
    • 上传文件
      • twine upload dist/*
      • 会提示你输入用户名, 然后输入密码, 注意密码不要复制粘贴, 要手输, 别问我怎么知道的

以上是关于Pypi 发布自己的包的主要内容,如果未能解决你的问题,请参考以下文章

怎么将自己写的包打包上传到PyPi供其他人下载

在Pypi上发布自己的Python包

我应该在 PyPI 发布的包中测试不受支持的 Django 版本吗?

如何将 conda 骨架与未上传到 pypi 的包一起使用?

Python 包管理

PyPI 安装和压缩包中缺少我的包的 requirements.txt 文件