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

 我来答
白露饮尘霜17
2022-06-29 · TA获得超过1.2万个赞
知道大有可为答主
回答量:6894
采纳率:100%
帮助的人:38.4万
展开全部

打包和上传依赖wheel和twine这两个包。

比方说我们想写这样一个包,这个包只有一个功能,那就是打印程序员佛祖字符画。

这个包就提供了一个佛祖字符画和一个打印函数。

__main__.py 让这个包可以被 python -m 直接运行,而 __main__.py 其实也就只干了一件事,那就是调用 print_buddha 打印字符画。

打包项目你需要学习以下知识

加星的是必须的,其他的可有可无不影响打包和上传PyPi,就是不规范而已。

最基本的 setup.py

然后我们试一下打包:

这是个组合命令,意思是先打sdist,再打bdist_wheel。

sdist打出来的是tar.gz格式压缩包,里面就是包源文件,可以供直接解压然后 python setup.py install 安装。

bdist_wheel打出来的是whl格式文件,这是pip官方安装包文件格式。

注意:egg格式已经过时了,现在PyPi的包都是用whl格式。

PiPy上传规范是同时要tar.gz和whl两个格式的包。

注意:打了星的是必须参数

描述性参数只是作为PKG_INFO用的,没有什么特殊作用,就是描述用的,用来供pip和PyPi管理的,因此看上面就可以了。

setup.py 需要提供以上参数数据用来搜集需要打到包里的文件:
注意:打了星的是重要参数

根据上面的说明,我们来演练一下。首先项目要做些修改和添加一些功能。

接着修改setup.py:

注意: data_files 、 scripts 这两个参数不享受 package_dir 的效果,必须指定根目录下相对路径。

打包看看:

试一下安装:

我们去PYTHON_HOME看看我们的包被安装到哪里。

我们的包各种文件都被安装到了我们想要的位置。

试一下命令行调用 buddha.bat :

python里导入 buddha 模块:

python里导入 single_module 模块:

例子:

更加详细的说明可以去参考官方文档《 setuptools documeng: Building and Distributing Packages with Setuptools 》

到 PyPi 官网注册一个账号,通过各种验证通。

将dist下的tar.gz和whl文件上传到PyPi。

会提示输入用户名密码,照着做就行。

上传成功后就会出现在PyPi和你的项目页里。

你无法重新上传覆盖版本,所以如果你的包有bug或者有修改,你必须修改setup.py里的version,然后再打一次包上传。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式