python - 为什么我的 python 包将其版本列为 5.0.6?

标签 python versioning python-packaging

我正在尝试遵循建议 here关于我正在编写的包的版本控制。由于某种原因,版本总是返回为“5.0.6”,而不是预期的“1.0.0”。

为了尝试弄清楚这一点,我制作了一个包含以下结构/文件的简单包:

\
    \VersioningExperiments\
        __init__.py
        _version.py

其中 __init__.py 看起来像这样:

from _version import __version__

_version.py看起来像这样:

__version__ = '1.0.0'

当我坐在根目录并运行以下命令时,我得到 5.0.6 而不是 1.0.0:

python
Python 3.5.2 |Anaconda 2.5.0 (64-bit)| (default, Jul  5 2016, 11:41:13) [MSC v.1900 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import VersioningExperiments
>>> VersioningExperiments.__version__
'5.0.6'

如果我注释掉 __init__.py 中的 lint,我会得到:

AttributeError: module 'VersioningExperiments' has no attribute '__version__'

那么5.0.6到底是从哪里来的呢?

最佳答案

好吧,以防万一其他人遇到这个问题,我明白了:

>>> import _version
>>> _version.__version__
'5.0.6'
>>> _version.__file__
'C:\\Anaconda3\\lib\\site-packages\\_version.py'

我能找到的最简单的修复方法是将 Test 中的 __init__.py 更改为:

from ._version import __version__

关于python - 为什么我的 python 包将其版本列为 5.0.6?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50742331/

相关文章:

python - 仅使用 PyPI 包名称以编程方式获取模块名称

Python 找不到已安装的模块

python - pip 依赖项可以排除或包含在语义预发布标签中吗?

Python:返回字符串中仅出现一次的单词

wix - 在版本号方案方面需要帮助

文本修订的数据库设计

version-control - 源代码控制 : what version numbering should be used for branches?

javascript - Bokeh 小部件为单个事件调用 CustomJS 和 Python 回调?

php - Python Web 框架与 php 类似

python - 将多个列表写入 CSV 中单个单元格中的不同列