很多人都希望能够把自己的库开源到pypi,也方便自己之后使用,方法很简单,如下: 首先,你的自己写的库允许别人去调用里面的类、函数,这些东西被定义在一个文件,假设名为test.py中。 那么,现在发布一个包,假设名字叫pytest,那么现在进行如下步骤:
随便选择一个目录作为根目录新建一个叫pytest的文件夹(你的开源库叫什么,这个就叫什么)在pytest下,创建__init__.py文件,文件中添加一行: name="package-self"就可以了
在pytest文件夹中,把预先写好的库文件test.py(本例中是test.py)放入,可以放入多个现在,在根目录(也就是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="author@example.com", 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/中有详细说明。其实很多东西也可以自己看着改。
新建README文件、LICENSE文件、tests文件,也都放在与pytest同级的根目录,README写上库的说明,LICENSE写与你选择对应的开源许可的原文(例如MIT LICENSE,这个网上一搜就有)、tests文件留空即可。接下来,可以开始打包、上传你的库了。首先, 在根目录下运行: 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中的对象了~