zoukankan      html  css  js  c++  java
  • 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/
  • 相关阅读:
    读《阿里云是如何失控的》有感
    LeetCode Search in Rotated Sorted Array 在旋转了的数组中查找
    界面编程模仿篇(QQ登录界面逼真篇)
    最牛B的编码套路
    QinQ封装及终结详解
    seaJs学习笔记之javascript的依赖问题
    Deploy maven on Linux OS
    c++——inline内联函数
    c++——引用
    c++——const关键字
  • 原文地址:https://www.cnblogs.com/jay54520/p/8989389.html
Copyright © 2011-2022 走看看