Python 发布自己开发的库至Pypi

很多人都希望能够把自己的库开源到pypi,也方便自己之后使用,方法很简单,如下:
首先,你的自己写的库允许别人去调用里面的类、函数,这些东西被定义在一个文件,假设名为test.py中。
那么,现在发布一个包,假设名字叫pytest,那么现在进行如下步骤:

  1. 随便选择一个目录作为根目录
  2. 新建一个叫pytest的文件夹(你的开源库叫什么,这个就叫什么)
  3. 在pytest下,创建__init__.py文件,文件中添加一行:
name="package-self"

就可以了

  1. 在pytest文件夹中,把预先写好的库文件test.py(本例中是test.py)放入,可以放入多个
  2. 现在,在根目录(也就是pytest的上一级目录)新建setup.py文件,文件中写如下内容:
import setuptools

with open("README.md", "r") as fh:
    long_description = fh.read()

setuptools.setup(
    name="example-pkg-YOUR-USERNAME-HERE", # Replace with your own username
    version="0.0.1",
    author="Example Author",
    author_email="[email protected]",
    description="A small example package",
    long_description=long_description,
    long_description_content_type="text/markdown",
    url="https://github.com/pypa/sampleproject",
    packages=setuptools.find_packages(),
    classifiers=[
        "Programming Language :: Python :: 3",
        "License :: OSI Approved :: MIT License",
        "Operating System :: OS Independent",
    ],
    python_requires='>=3.0',
)

其中,authtor、verison、author_email改成你自己的,url改成该项目的github地址、packages参数可以用上面的,也可以改成packages=[“pytest”];另外,classifier中,可以添加不同类型的参数,例如,开源协议若选择MIT,就写"License :: OSI Approved :: MIT License",如果要其他协议例如Mozilla,就写“License :: OSI Approved :: Mozilla Public License 2.0 (MPL 2.0)”,更多classier中能够添加的东西在https://pypi.org/classifiers/中有详细说明。其实很多东西也可以自己看着改。

  1. 新建README文件、LICENSE文件、tests文件,也都放在与pytest同级的根目录,README写上库的说明,LICENSE写与你选择对应的开源许可的原文(例如MIT LICENSE,这个网上一搜就有)、tests文件留空即可。
  2. 接下来,可以开始打包、上传你的库了。首先,
    在根目录下运行:
python setup.py sdist bdist_wheel

然后,输入

python -m twine upload --repository-url https://upload.pypi.org/legacy/ dist/*

按照提示,输入pypi的用户名、密码,就可以成功了。若中途提示有些库没有安装,则使用pip安装一下,需要用到twine库。

祝大家成功!
上传完之后,就可以pip install 你自己的库名
在本例中,pip install后,在python代码中就可以通过from pytest.test import * 来使用test.py中的对象了~

你可能感兴趣的:(python基础笔记,Linux及服务器)