有没有一种标准方法可以将版本字符串与Python包关联起来,这样我就可以执行以下操作?

import foo
print(foo.version)

我可以想象,有某种方法可以在不使用任何额外硬编码的情况下检索数据,因为小/大字符串已经在setup.py中指定.我发现的另一个解决方案是在foo/__init__.py中有import __version__,然后由setup.py生成__version__.py.

推荐答案

不能直接回答你的问题,但你应该考虑把它命名为__version__,而不是version.

这几乎是一个准标准.标准库中的许多模块使用__version__,这也在lots个第三方模块中使用,因此它是准标准.

通常,__version__是字符串,但有时也是浮点数或元组.

编辑:正如S.洛特所说(谢谢!),PEP 8明确表示:

模块级Dunder名称

模块级"dunders"(即名称有两个前导和两个尾随)

您还应确保版本号符合PEP 440中所述的格式(PEP 386是本标准的早期版本).

Python相关问答推荐

替换为Pandas

使用Python计算cmyk,在PDF上发现覆盖范围

如何在WTForm中使用back_plumates参考brand_id?

在IIS中运行的FastAPI-获取权限错误:[Win错误10013]试图以其访问权限禁止的方式访问插槽

在pandas DataFrame上运行apply()时如何访问DateTime索引?

当pip为学校作业(job)安装sourcefender时,我没有收到匹配的分发错误.我已经try 过Python 3.8.10和3.10.11

inspect_asm不给出输出

jit JAX函数中的迭代器

将HLS纳入媒体包

GL pygame无法让缓冲区与vertextPointer和colorPointer一起可靠地工作

使用FASTCGI在IIS上运行Django频道

韦尔福德方差与Numpy方差不同

如果值不存在,列表理解返回列表

如何让程序打印新段落上的每一行?

如何在Django基于类的视图中有效地使用UTE和RST HTIP方法?

从groupby执行计算后创建新的子框架

如何更改分组条形图中条形图的 colored颜色 ?

利用Selenium和Beautiful Soup实现Web抓取JavaScript表

将pandas导出到CSV数据,但在此之前,将日期按最小到最大排序

dask无groupby(ddf. agg([min,max])?''''