python脚本打包发布到pypi

1、创建项目

2、必要的配置文件及注意点
python脚本打包发布到pypi_第1张图片
image.png

1)setup.py

是配置文件,尤其重要,主要的参数有:

#!/usr/bin/env python3
# coding=utf-8

from setuptools import setup, find_packages

__author__ = 'XYCoder'
__date__ = '2019/04/18'

setup(
    name='<项目名称>',
    version='<项目版本号>',
    description=(
        '项目的描述'
    ),
    long_description=open('README.rst').read(),
    author='',
    author_email='',
    maintainer='',
    maintainer_email='',
    license='BSD License',
    packages=find_packages(),
    platforms=["all"],
    url='你的项目的托管地址,注意:一定要是public的项目,不能是private的,否则会安装失败',
    install_requires=['requests', 'GitPython'],
    include_package_data=True,
    classifiers=[
        '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',
        'Programming Language :: Python :: 3.7',
        'Topic :: Software Development :: Libraries'
    ],
)
2)LICENCE

开源协议,不多说,在新建git工程的时候会默认生成,如果不是新工程,从别处拷贝即可。

3)MANIFEST.in
include *.py
include README.rst
4)README.rst

随便写,注意符合rst书写格式就成

5) requirements.txt

可以为空

注意点:

1、setup.py中url不能瞎写,要是真实的git地址,并需要存在与当前工具版本一致的tag
2、LICENCE文件内容要与setup.py中写的开源协议相符,最好在新建git工程的时候自动生成或者后期再git中修改
3、setup.py中的install_requires对应的模块名一定要正确,否则打包安装时会报错

3、打包

$ python setup.py sdist (代码包)
$ python setup.py sdist bdist_wheel (二进制包,安装速度更快)

4、上传pypi

需要事先有账号密码,注册地址:https://pypi.org/
有了账号密码在上传的时候输入即可

$ twine upload dist/*

如果提示没有twine,先pip install twine即可

5、安装自己的pypi项目

$ pip install yourprojectname

6、TODO(非必须)

现在我们的项目只能当做一个模块来使用,也就是在脚本或者python的解释环境中使用,但是我们想更高端一点啊,比如说直接在终端执行

$ yourprojectname functionname

就可以直接执行我们的模块功能,待完善。

你可能感兴趣的:(python脚本打包发布到pypi)