Python 包管理

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python 包管理相关的知识,希望对你有一定的参考价值。

安装途径

根据 [1],安装途径有:

  • PyPI 或其他索引地址。PyPI 是最常用的,也是默认的包索引,所有人都可以获取包和上传他们自己的包。其他索引地址可以是豆瓣源,甚至是自己搭建的包索引地址
  • 从版本控制器安装,比如 GitHub、GitLab
  • 从本地安装,格式可以是:源分发包(sdist)、wheel 包、源文件的压缩文件

升级包

如果是从 PyPI 上升级包,我们只需要更改包的版本号就可以。但实际上整个流程是:

  • 包的维护者修改代码
  • 更改版本号,发布到 PyPI

维护自己的包

正常维护

像正常的包一样维护:

  • 改动代码
  • 修改版本号,发布到 PyPI

这样使用者只需要更改版本号就能升级。

使用者部署时不需要对该包做额外处理。

Git submodule

将包作为 submodule 添加到要使用的项目中,然后手动安装,包的版本通过 submodule 的 commit 与版本号来追踪。

部署时需要在具有该包 git 权限的机器上将 submodule 打包,然后上传到部署机器,因为一般的部署机器没有 git 权限。

如果只通过 commit 来追踪,由于这里存在将 submodule 打包再安装,所以如果要安装最新的 submodule,要么更新 submodule 的版本号或者强制重新安装 submodule 即使版本号一样。

内部使用的包

如果不希望包暴露到外部,那么可以使用『 Git submodule』或修改『正常维护』。

修改『正常维护』

  • 将包上传到安全的地址
  • 如果部署机器可以访问上述地址,那么可以拉取下来再安装或者从其他源安装
  • 如果部署机器不可以访问上述地址,那要在可以访问上述地址的机器上将包上传到部署机器再安装

参考

  1. https://packaging.python.org/tutorials/installing-packages/

以上是关于Python 包管理的主要内容,如果未能解决你的问题,请参考以下文章

python多版本以及各种包管理

python多版本以及各种包管理

Python 包管理(PYPA)

用 Python 管理压缩包

Python 包管理

Python包管理工具之pipenv