如何获取包中 setup.py (setuptools) 中定义的版本?

2023-11-22

我怎样才能获得定义的版本setup.py从我的包裹中(对于--version,或其他目的)?


询问已安装发行版的版本字符串

要在运行时从包内检索版本(您的问题实际上是在问什么),您可以使用:

import pkg_resources  # part of setuptools
version = pkg_resources.require("MyProject")[0].version

存储版本字符串以供安装期间使用

如果您想反其道而行(这似乎是这里其他答案作者似乎认为您在问的问题),请将版本字符串放在一个单独的文件中,然后读取该文件的内容setup.py.

你可以在你的包中创建一个 version.py__version__行,然后使用 setup.py 读取它execfile('mypackage/version.py'),这样就设置了__version__在 setup.py 命名空间中。

安装期间有关竞争条件的警告

顺便说一句,请勿按照此处另一个答案中的建议从 setup.py 导入包:它似乎对您有用(因为您已经安装了包的依赖项),但它会对包的新用户造成严重破坏,因为如果不先手动安装依赖项,他们将无法安装您的软件包。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何获取包中 setup.py (setuptools) 中定义的版本? 的相关文章

随机推荐

  • 在 PHP PDO postgres 中处理布尔输入?

    有没有更好的方法来处理布尔输入postgresPHP 中的 PDO 驱动程序 在 PHP PDO 中转换布尔值false到 和true到 1 这会导致某些语句中出现如下错误 00000 7 ERROR invalid input synta
  • 简单的语音识别方法

    是的 我知道语音识别相当复杂 轻描淡写 我正在寻找的是一种区分的方法maybe20 30 个短语 分割单词的能力 离散语音很好 会很好 但不是必需的 该软件将取决于用户 即供我使用 我不是在寻找现有的软件 而是在寻找一种自己做这件事的好方法
  • 如何在Windows中使用C#检测进程的开始和结束?

    我在 C 方面有很好的工作经验 但现在我想开发一个简单的 可能是控制台应用程序 软件 它只检测我的计算机上启动或结束的进程的名称和时间 例如 我假设我的小应用程序已经在运行 如果用户打开 Firefox 那么它应该随时间将 firefox
  • 更改 QLineEdit 中占位符文本的颜色

    当我设置占位符文本时QLineEdit setPlaceholderText 显示为灰色 有什么办法可以将颜色更改为其他颜色 例如红色 你必须子类化QLineEdit并在其中绘制您自己的占位符paintEvent class CustomC
  • WSL 2,React 不重新加载文件更改?

    我最近安装了 WSL 2 但是当我使用 create react app 创建应用程序并使用 npm start 时 当我编辑某些文件时 该应用程序不会重新加载 我错过了什么吗 根据我的经验 当您的源位于 Windows 驱动器上时 例如
  • 处理 Backbone 中的不可保存值

    是否有标准方法来处理 Backbone 中不可保存的值 e g MyModel Backbone extend Backbone Model initialize function this set inches this get mm 2
  • 使用jQuery获取div的绝对或相对位置position

    我会尝试解释我想要得到什么 我有一个 div 的位置 固定 在页面底部 到该 div 中 还有一些其他 div 我想要的是显示与这些 div 右侧对齐的另一个 div 具有绝对位置 换句话说 我不想知道 div 的左侧位置 相对于文档 ID
  • Windows 上的 Cmake 不添加共享库路径(适用于 Linux)

    我在 Linux 上使用 CMake 和 Eclipse 一段时间了 并且一直在处理包含大量可执行文件和共享对象的多个目标项目 我使用源代码构建 在 Linux 上 二进制文件被放入它们自己的目录中 当我在 Linux 上执行此操作时 Ec
  • 如何捕获SQLServer超时异常

    我需要专门捕获 SQL Server 超时异常 以便可以以不同的方式处理它们 我知道我可以捕获 SqlException 然后检查消息字符串是否包含 Timeout 但想知道是否有更好的方法来做到这一点 try some code catc
  • 将表单移至特定屏幕

    我试图弄清楚如何将指定的 System Windows Forms Form 移动到主屏幕以外的另一个屏幕上 我有一个带有可用屏幕列表的组合框 用户可以在其中选择他喜欢的屏幕 并且我的应用程序应该将其窗口之一移动到该屏幕上 我的笔记本电脑上
  • 通过从 Javascript 中的特定日期减去 X 天数来查找日期

    我想通过从 JavaScript 中的特定日期减去 X 天数来查找日期 我的 JavaScript 函数接受 2 个参数 一个是日期值 另一个是需要减去的天数 例如 我将我的参数日期传递为 2009 年 7 月 27 日 将另一个参数传递为
  • C++11:g++-4.7 内部编译器错误

    以下代码 include
  • 在哪里可以找到 Windows mysql 服务器的 my.ini 文件?

    同样的问题一次又一次地重复 我是另一个重复这个问题的人 我已经设置了我的 mysql 服务器 它的位置是 C Program Files MySQL MySQL Server 5 5 但我无法在上述路径中找到 my ini 文件 当我输入命
  • NPM package.json 文件的主要用途是什么?

    我读自here如果人们通过 npm 安装您的项目 则 package json 文件中的依赖项允许人们安装依赖项 最后 dependency字段用于列出所有依赖项 您的项目可在 npm 上找到 当有人安装你的 通过 npm 进行项目 列出的
  • 使用 MVC 属性路由的每个控制器有多个 RoutePrefix?

    通过新的 MVC 属性路由 我知道您可以分配多个Route属性为单个ActionResult 但我正在寻找一种方法来做同样的事情RoutePrefix等级 我有一个控制器 在每个操作中 都应该可以通过三种途径访问 Games Title C
  • 在 UserControl 中使用依赖属性的 wpf 问题

    我制作了一个用户控件 该控件每隔几秒就使用来自串行端口的数据更新一次 这个 UserControl 应该非常简单 由一个用于字段名称的 Label 和另一个包含字段值的 Label 组成 我说它should很简单 但是行不通 它根本不更新
  • 使用 youtube v3 API 检索 youtube 播放列表中的所有视频

    我正在使用 youtube v3 API 检索播放列表的视频并获得 50 个项目 此链接没有任何问题 但视频数量是 100 而我只获得 50 我怎样才能获得接下来的 50 个项目 我试过起始索引但它不适用于 v3 API 任何帮助表示赞赏
  • 使用 CSS 强制纵横比在 Safari 上不起作用

    以下代码在 Firefox 和 Chrome 中运行良好 但在Safari 在 Mac 和 iPad 上测试 http jsfiddle net eFd87 div div img src http farm3 staticflickr c
  • 获取用户 Xbox 成就列表?

    有没有办法从 Xbox 获取用户的成就列表而不处理屏幕抓取等 网站如何喜欢http www trueachievements com做吗 他们绝对不是屏幕抓取 因为他们没有我的 Live ID 凭据 我知道 Xbox LIVE 社区开发者计
  • 如何获取包中 setup.py (setuptools) 中定义的版本?

    我怎样才能获得定义的版本setup py从我的包裹中 对于 version 或其他目的 询问已安装发行版的版本字符串 要在运行时从包内检索版本 您的问题实际上是在问什么 您可以使用 import pkg resources part of