赞
踩
使用python 的其中一个原因就是因为python有众多强大的库,仅少量代码就可以实现非常强大的功能。
通常使用pip安装各种库,非常方便。
当然也可以把我们写的代码打包成库, 上传到python仓库,供其他开发者使用。
https://pypi.org/account/register/
目前pyqi 加强安全要求,需要开启两步验证之后才允许使用。
可以使用 app密码管理器 或者 USB key,
我这里是用 IOS 密码管理器,直接选择 Add 2FA with authentication application.
目前安全要求,上传包不允许直接使用账号密码(以前是可以的,网上大部分教程也是直接使用账号密码上传)将API token 添加到用户目录下的.pypirc 文件中
做个简单的python库,里面有四个文件,分别是setup.py、src/__init__.py、src/wqtool.py、README.md
setup.py 是库的重点,里面详细描述库的信息,setuptools根据setup.py将库打包。
关键字请看:Keywords - setuptools 68.1.2.post20230829 documentation (pypa.io)
classifiers请看:Classifiers · PyPI
import os from setuptools import setup from setuptools import find_packages with open(os.path.join(os.path.dirname(__file__), 'README.md')) as readme: README = readme.read() VERSION = '0.1.1' setup( name='wqtool', # package name version=VERSION, # package version description='wq tool', # package description author='wwdeng', author_email='xx@gmail.com', install_requires=['Scons'], long_description=README, long_description_content_type='text/markdown', classifiers=[ 'Development Status :: 4 - Beta', 'License :: OSI Approved :: MIT License', 'Programming Language :: Python :: 3.10', 'Programming Language :: Python :: 3.9', 'Programming Language :: Python :: 3.8', ], packages=find_packages(), zip_safe=False, entry_points={ 'console_scripts': [ 'wqtool = src.wqtool:main', ], } )
__init__.py是个空文件,表明src是个包
wqtool.py是我们发布的小功能实现文件,这里仅做个demo,简单的打印一个LOG。大家根据自己的需求实现自己需要的功能。
#!/usr/bin/env python
def main():
print('wq tool')
if __name__ == '__main__':
main()
README.md 用于描述这个库,在setup.py做为长描述使用
pip install setuptools wheel twine
setuptools 是打包工具, 是 distutils 增强版,不包括在标准库中。其扩展了很多功能,能够帮助开发者更好的创建和分发 Python 包。大部分 Python 用户都会使用更先进的 setuptools 模块。
wheel 库安装后可以打包成whl的包。Egg 格式是由 setuptools 在 2004 年引入,而 Wheel 格式是由 PEP427 在 2012 年定义。Wheel 的出现是为了替代 Egg,它的本质是一个zip包,其现在被认为是 Python 的二进制包的标准格式。
twine 用于上传包到pypi
python setup.py develop
python setup.py bdist_wheel
twine upload dist/*
twine 会使用 ~/.pypirc 文件中的api token 上传包到仓库中,上传完毕后就可以中pypi 中看到这个库
使用pip安装这个库,就可以直接使用了
pip install wqtool
wqtool
https://www.fournoas.com/posts/authentication-on-pypi-using-api-token-instead-of-password/
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。