当前位置: 首页 > 知识库问答 >
问题:

从setup.py检索python模块自己的版本[复制]

欧阳骏俊
2023-03-14

我正在根目录中使用标准setup.py编写基于Flask的模块:

#!/usr/bin/env python
from distutils.core import setup

setup(name=modulename,
      version='0.2.16.dev0',
      description='...',
      author='...',
      ...
     )

我愿意使用FlaskAPI公开模块版本。以编程方式访问自己的模块版本的正确方法是什么?

谢谢

更新:我忘了提到该模块没有必要作为标准模块安装,并且可能在PYTHONPATH中不可用。这就是为什么这个问题不是这样的

共有1个答案

田博易
2023-03-14

将版本放入version.py\uuuuu version\uuuuuu.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
 类似资料:
  • 我使用安装了Python模块和: 如何从命令行检查它们的版本?

  • 创建你自己的模块是十分简单的,你一直在这样做!每个Python程序也是一个模块。你已经确保它具有.py扩展名了。下面这个例子将会使它更加清晰。 创建你自己的模块 例8.3 如何创建你自己的模块 #!/usr/bin/python # Filename: mymodule.py defsayhi():     print'Hi, this is mymodule speaking.' version

  • 问题内容: 许多第三方Python模块都有一个属性,该属性保存该模块的版本信息(通常类似或),但有些则不然。 此类模块的特定示例是libxslt和libxml2。 我需要检查这些模块在运行时是否使用了正确的版本。有没有办法做到这一点? 潜在的解决方案是在运行时读取源代码,对其进行哈希处理,然后将其与已知版本的哈希进行比较,但这很讨厌。 有更好的解决方案吗? 问题答案: 我会远离哈希。正在使用的li

  • 问题内容: 当前,我们通过在under属性中提及它们的版本和依赖项来在系统上设置\安装一些软件包。我们的系统需要Python 2.7。有时,用户在其系统上拥有多个版本的Python,例如2.6.x和2.7,它说的某些软件包已经可用,但实际上在系统上的2.6站点软件包列表下可用。还有一些用户只有2.6,如何从中强制实施,或者有其他方法可以说只有python 2.7,而我们要更新的所有软件包仅适用于2

  • 问题内容: 这个问题已经在这里有了答案 : install_requires基于python版本 (2个答案) 3个月前关闭。 我的setup.py看起来像这样: 在Python 2.6(或更高版本)下,ssl模块的安装由于以下原因而失败: 有没有一种标准的方法来定义仅针对特定python版本的依赖关系?我当然可以做到,但也许有更好的方法可以做到。 问题答案: 这只是一个列表,因此您必须在上面的某

  • 问题内容: 我有一个Python库。不幸的是,我尚未将其更新为可用于Python 3。 在其中,我添加了 我的目的是不允许在Python 3下安装/使用此软件包,因为我知道它尚无法使用。我认为这不是正确的方法,因为然后尝试下载并安装python 2.7.3(已经安装了版本!)。 我应如何在特定范围的Python解释器版本上指定我的库依赖项?我应该添加标签吗?这实际上会阻止在Python 3下安装吗