社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

Python 项目代码写完了,然后怎么打包和发布?

python爱好者 • 3 年前 • 408 次点击  
阅读 4

Python 项目代码写完了,然后怎么打包和发布?

你把你的代码写完了,是不是要给别人使用下,怎么打包你的项目代码呢?喂,开源么?

接下来就跟你说说,如何打包你的代码。

就拿我们上次演示的 todo为例,写完代码之后,代码的目录是这样的:

在 todo 这个目录里面,文件都放在一起了,我们可以这样简单划分一下:

这里创建了一个 package 目录,将源码文件放进去,然后把模板文件和数据库文件分门别类的安排好。在 package 中,还创建了一个 init.py 仪式感一下。为了让别人知道你是认真对待这个项目的,你可以在项目文件中创建一个 tests 目录,在里面测试你的代码:

接着可以创建一个 LICENSE,用来说明你的这个项目可以被怎么使用?是不是需要声明来源,是不是可以商用?别人用你的项目去搞事情如何避免被抓去吃牢饭等。

现成的开源协议有好几种:

接着再创建一个 README 文件,来说明你这个项目是干什么的,如何使用等描述。

现在你的项目文件目录就有点人模人样了:

接下来要创建一个比较重要的文件了 —— setup.py,这个文件主要用来描述你的项目信息,好让 setuptools 打包工具来帮你打包项目。在根目录下创建一个 setup.py 文件,按以下的方式来写你的项目信息:

每个参数都是什么意思呢?我来给你说明一下:
long_description:对项目比较长的描述,我们可以直接从 你刚刚写的 README 文件读取。

  • name: 你定义的包名,可以用字母、数字、下划线,需要确保唯一性。
  • version: 项目的版本号。
  • author: 你(作者)的名称。
  • author_email: 你(作者) 的邮箱。
  • description: 项目的简要描述。
  • long_description_content_type:长描述内容的使用的标记类型,一般为 markdown 或者 rst。
  • url: 你这个项目的主页地址,也可以直接链接到你这个项目的Github 地址上面去。
  • include_package_data: 是否添加 py 以外的文件。
  • package_data: 需要添加 Python 的额外文件列表。
  • packages: 直接用 setuptool 找到你项目所有相关的包列表。
  • classifiers: 附加说明,比如这里写的就是使用于 Python3 版本,使用的是 MIT 协议,独立于 OS。
  • python_requires: python 版本要求。
    那么现在,你的项目目录应该是这样子的:

接下来就可以打包了。

如果你之前没有安装过 setuptools 和 wheel 可以先安装一波:

python3 -m pip install --upgrade setuptools wheel

然后在你的项目根目录下,使用如下命令打包:
python3 setup.py sdist bdist_wheel

这时候你的目录会增加这么些文件:

这样就算打包好了,在 dist 目录中,以 tar.gz 结尾的是你项目的源文件,而以 .whl 结尾的就是构建好了给别人使用的发行版。

那么如何将你打包好的项目发布出来,给别人使用呢?其实之前有说过了,这里再简单的说一下吧:先安装一下 twine:python3 -m pip install twine接着使用 twine 将你打包好的文件上传到 pypi 上面去:twine upload dist/*这时候它会提示你输入 pypi 的账号密码:

没有怎么办?去注册一个呗,到以下链接注册:pypi.org/account/reg…接着输入你的账号密码,就可以上传上去了:

这时候别人就可以通过 pip 来安装你的项目了:

像这样:

然后就可以给别人使用你的包了:

你在 pip install 的时候,其实就是下载你上传的 whl 文件然后安装:

如果你不想开源,只想给你朋友使用的话,你也可以直接把 dist 这个目录下的文件发给他,让他自行安装一波就可以使用了:

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/110692
 
408 次点击