发布于2024-11-25 16:43 阅读(153) 评论(0) 点赞(7) 收藏(4)
我在工作中开发了一些 Python 库,用于访问不同的内部工具。我遇到了两个主要问题,需要一些帮助。
在脚本/应用程序之间使用共享模块。如果我想在不同的脚本/库中使用模块,那么在特定虚拟环境/全局模块下使用 pip 安装它们后,如何处理更新?在我的示例中,我有一个 django 应用程序将使用某些模块,然后一些独立脚本可能会再次使用它。
版本控制 - 我目前正在尝试跟踪 bitbucket 中的文件。如果这些脚本将使用这些模块的共享实例。我该如何处理对模块的更改,然后将其推送到服务器?每次我想测试或更新时,我是否必须登录服务器并提取新代码并重新安装模块?
尝试从 bitbucket 克隆。这将拉取文件,但我如何才能将其作为全局导入。
我看到两个选项:
本地打包模块
它就像在 pypi 上发布一样,但无需发布。打包到 wheel 文件,然后每次想要“升级”时使用 pip install / upgrade 模块。它很简洁,您可以像其他任何应用程序一样,通过依赖文件控制哪个应用程序使用哪个版本的模块。很简单。
像为 pypi 创建一个包(请参阅https://packaging.python.org/en/latest/tutorials/packaging-projects/)
在 git 中使用子模块。
您可以在 git 存储库中拥有跟踪外部模块(存储库)的子模块。基本上就是在您的存储库中创建一个映射到另一个存储库的“文件夹”。这很“方便”,但我发现也很容易搞砸,因为您需要专门提取子模块中的更改(更新不会仅仅因为您推送到了其他存储库而显示)。直接在主存储库中更改子模块代码也很诱人,但您需要确保跟踪/提交这些更改到子模块;这与将更改提交到主存储库不同。如果您有多个使用相同子模块的应用程序,并在这些应用程序中进行更改,您经常会遇到不同步的更改和合并冲突。
因此,我倾向于在版本更改时打包并重新安装。您可以有一个文件夹结构,其中您的存储库位于同一级别,公共模块作为一个文件夹,并将依赖项指向相对路径。当您在服务器上安装时,您会克隆具有相同文件夹结构的存储库,并且 pip install deps 指向相对路径。理想情况下,对于部署,您有一个存储服务器来发布您的私有模块并从那里进行 pip 安装。
作者:黑洞官方问答小能手
链接:https://www.pythonheidong.com/blog/article/2045896/ee7b7af03e144be8930e/
来源:python黑洞网
任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任
昵称:
评论内容:(最多支持255个字符)
---无人问津也好,技不如人也罢,你都要试着安静下来,去做自己该做的事,而不是让内心的烦躁、焦虑,坏掉你本来就不多的热情和定力
Copyright © 2018-2021 python黑洞网 All Rights Reserved 版权所有,并保留所有权利。 京ICP备18063182号-1
投诉与举报,广告合作请联系vgs_info@163.com或QQ3083709327
免责声明:网站文章均由用户上传,仅供读者学习交流使用,禁止用做商业用途。若文章涉及色情,反动,侵权等违法信息,请向我们举报,一经核实我们会立即删除!