从 setup.py 检索 python 模块自己的版本 [重复]
Posted
技术标签:
【中文标题】从 setup.py 检索 python 模块自己的版本 [重复]【英文标题】:Retrieving python module own version from setup.py [duplicate] 【发布时间】:2018-02-08 02:19:39 【问题描述】:我正在根目录中使用标准 setup.py 编写基于 Flask 的模块:
#!/usr/bin/env python
from distutils.core import setup
setup(name=modulename,
version='0.2.16.dev0',
description='...',
author='...',
...
)
我愿意使用 Flask API 公开模块版本。以编程方式访问我自己的模块版本的正确方法是什么?
谢谢
更新: 我忘了提到该模块不需要作为标准模块安装,并且可能在 PYTHONPATH 中不可用。这就是为什么这个问题不像this和this
【问题讨论】:
在某个变量中设置版本并将该变量传递给 setup() 不是一种选择,因为我正在使用自动设置此版本的发布工具...... 【参考方案1】:将版本放入version.py
或__version__.py
等(在包内)并将其导入setup.py
和应用程序:
from distutils.core import setup
from mypackage.version import version
setup(…
version=version,
…
)
如果在setup.py
中导入您的包会导致不必要的副作用,您可以阅读mypackage/version.py
并解析它或exec()
或单独导入它(没有包),技巧:
from imp import load_source
from os.path import abspath, dirname, join
versionpath = join(abspath(dirname(__file__)), "mypackage", "__version__.py")
load_source("mapackage_version", versionpath)
from mapackage_version import version
【讨论】:
以上是关于从 setup.py 检索 python 模块自己的版本 [重复]的主要内容,如果未能解决你的问题,请参考以下文章
Python - 在 setup.py 安装之前和之后导入包模块