gpt4 book ai didi

python - 更改模块 __version__ 并在之后保存具有更新版本的模块源文件

转载 作者:太空宇宙 更新时间:2023-11-04 10:56:31 24 4
gpt4 key购买 nike

在我所有的 Python 模块文件中,我将模块版本放在 __version__ 中。

现在,如果我发布我的 Python 库,我想自动增加所有 Python 模块文件中的这个模块版本。

我知道我可以像这样访问模块的版本:

我的模块.py:

# my module
__version__ = "0.0.1"

使用我的模块.py:

import mymodule

# Gives me "0.0.1"
print mymodule.__version__

更改版本后如何保存模块源文件?以这样的方式:

mymodule.__version__ = "0.0.2"
mymodule.__save__() # does not exist as such, but thats what I want

我当然可以应用类似 sed 的机制,逐行读取源文件并替换 __version__ - 我已经有一个 Bash 脚本可以做到这一点。但我想替换那个 Bash 脚本并以更 Pythonic 的方式增加模块版本。你知道吗?

最佳答案

更改变量和更新源代码并没有真正巧妙的方法。程序运行后,您不知道变量是否来自简单的赋值、函数调用、if 语句中的某些内容等。有一些方法可以在不运行代码的情况下解析代码、编辑 AST 并编写它会退出,但它很复杂且不方便。

三个实用的解决方案:

  • 我使用的大多数库在每个模块中都没有 __version__ - 只是在库的顶层。
  • 您可以在一个地方设置 __version__ 并在其他地方引用它,例如from .versionno import __version__
  • 正如 Ignacio 所说,如果您必须将它写入每个文件,请使用 sed 或类似工具,并保持简单。

关于python - 更改模块 __version__ 并在之后保存具有更新版本的模块源文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9381628/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com