对于 distutils
、 setuptools
等,在 setup.py
中指定了一个软件包版本:
# file: setup.py
...
setup(
name='foobar',
version='1.0.0',
# other attributes
)
我希望能够访问相同的版本号从软件包:
>>> import foobar
>>> foobar.__version__
'1.0.0'
我可以将 __version__ = '1.0.0'
添加到包的 _ _ init _ _ 中。Py,但是我还想在包中包含额外的导入,以创建一个到包的简化界面:
# file: __init__.py
from foobar import foo
from foobar.bar import Bar
__version__ = '1.0.0'
还有
# file: setup.py
from foobar import __version__
...
setup(
name='foobar',
version=__version__,
# other attributes
)
但是,如果导入了其他尚未安装的包,这些额外的导入会导致 foobar
安装失败。与 setup.py 和包共享包版本的正确方法是什么?