setup.py:如何查找用户指定的括号内的附加内容

2024-03-03

我有一个通过 PyPI 分发的包,其中包含大量数据。 PyPI 有 100MB 的限制,我想分发比这更多的数据。数据相当不变,因此在每次代码发布时不断将大量数据推送到 PyPI 似乎也很浪费。

相反,我更愿意分发最少的数据,并将大数据选项作为可选子包处理,例如pip install mypackage[lotsofdata]。这将由一个指定extras_require论证setup() in setup.py。实际的数据加载将是安装后操作setup.py它使用以下命令从服务器上拉取数据wget或类似的东西。

我知道如何执行安装后操作

from setuptools.command.install import install

class InstallWrapper(install):
    def run(self):
        install.run(self)
        # post install stuff goes here
        #  if [lotsofdata] option given, install it from server

但我不知道如何访问用户的命令行来查看该选项是否[lotsofdata]被给予。

有人知道如何从安装时代码中获取此信息吗?

self是一个实例setuptools.command.install继承自的类distils.command.install它继承自distils.cmd.Command。没有明显的方法或属性可以给我我正在寻找的东西,但是代码和文档并不那么容易理解。

这些括号参数的命名似乎不一致,例如“setuptools extras”、“install extras”、“package extras”。 “额外”一词在整个 setuptools/distutils 世界中似乎有很多含义。


None

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

setup.py:如何查找用户指定的括号内的附加内容 的相关文章

随机推荐

  • Visual Studio 将项目移动到不同的文件夹

    如何将项目移动到 Visual Studio 中的其他文件夹 我在项目中已经习惯了这种结构 app Project Something Project SomethingElse 我想将整个命名空间 SomethingElse 重命名为 S
  • Intent.FLAG_ACTIVITY_CLEAR_TASK 的替代方案

    我有两个应用程序 App B 启动 App A 如果用户从应用程序 A 内部启动应用程序 B 我会在应用程序 A 上调用完成 所以我没有问题 如果用户从应用程序抽屉直接进入应用程序 B 或长按主页按钮 那么我会执行以下操作 首先清除应用程序
  • 如何获取可编辑JComboBox中已写入的值?

    我继续搜索 似乎每个人都只使用JComboBox getSelectedItem 但我的组合框是editable用户可以输入anything The getSelectedItem方法返回组合框中的实际项目之一 而不是在字段中输入的字符串
  • 任务计划程序找不到文件

    我在 Windows Server 2008 R2 Standard 上有大约 20 个计划任务 他们已经工作了几周 但突然这个周末他们都停止了 这些任务都是 bat 文件和 exe 文件 通过单击资源管理器或从 cmd 运行 每个文件都可
  • 使用 DataContractJsonSerializer 将字典序列化为 JSON 对象

    我有一个 DataContract 具有一些属性并使用以下命令序列化为 JSON 的对象DataContractJsonSerializer 其中一个属性是类型Dictionary
  • 是否可以根据完整模板参数构造成员数组的元素?

    Assume template
  • 运算符=的返回类型 - 引用还是值?

    从函数 operator 返回有什么区别 by reference by value 在下面的示例中 两个版本似乎都产生了正确的结果 include
  • jSeparator 外观 - 预览设计与运行文件 (netbeans)

    我有这个小问题 我正在使用 Netbeans 当我单击 预览设计 时 我看到的 jSeparators 如下所示 但是当我运行该项目时 它是这样的 我该如何解决这个问题 我希望该项目看起来像预览设计 Thanks 当您运行窗口时 JFram
  • WPF 列表框项目不自动换行

    My ListBox其中有一个可能很长的描述字段 我不想使用水平滚动条 而是想自动换行 如果我设置它就有效MaxWidth但自从ListBox更改大小我不想对值进行硬编码 最好的方法是什么 编辑 描述位于TextBlock 简化的XAML
  • xml删除php中的子节点

    我试图通过 id 属性删除 druzenje 元素 我知道要做到这一点 我必须从该元素中删除所有子节点
  • 输出到精确的流浮点数

    我的浮点数精度有问题 int main void double b 106 829599 float a b std cerr lt lt std setprecision 6 lt lt a lt lt a lt lt b lt lt b
  • phonegap运行android报错

    每当我尝试使用构建项目时phonegap run 我收到以下错误 C Users MS AwaN my app gt phonegap run android phonegap detecting Android SDK environme
  • 学习 WCF RIA 服务的最佳资源

    您正在查看哪些书籍 视频 文章来了解如何使用新发布的 Silverlight WCF RIA 服务 1 起点是http www silverlight net getstarted riaservices http www silverli
  • nginx:将 ssl 连接转发到另一台服务器

    我有一个 nginx 主服务器 决定将请求路由到的传入服务器名称 对于两个辅助服务器 此主 nginx 服务器还保存 ssl 证书和密钥 第三台服务器拥有自己的证书和密钥 因为这些证书和密钥的更新过程很频繁 我现在的问题是如何配置主 ngi
  • 设置 svnperms 预提交挂钩

    我正在尝试将 svnperms 实现到存储库中 但在一些事情上遇到了困难 pre commit具有执行权限 rwxrwxr x 1 svnadm svn 3018 May 27 10 11 pre commit 这是我在预提交中对 svnp
  • BBP 算法所需的工作精度?

    我希望在低内存环境中计算 Pi 的第 n 位数字 由于我没有可用的小数 这Python 中的纯整数 BBP 算法 http en literateprograms org Pi with the BBP formula 28Python 2
  • vuetify-loader 1.6 与 laravel mix 不兼容,vue-loader 15 目前不支持 oneOf 的 vue 规则

    我正在尝试在 laravel 上安装 vue 我相信我明白了 但是当我运行 npm run watch 或 npm run dev 时 它会生成此错误 我尝试了几件事但无法解决 Error VueLoaderPlugin Error vue
  • Excel:使用外部链接可以提高性能吗?

    我想知道使用外部链接与打开电子表格和复制单元格 使用 VBA 相比是否有性能提升 我想 Excel 必须以同样的方式打开文件 但是当我使用以下代码进行测试时 外部链接速度更快 Dim t As Double Dim rng As Range
  • 使用 Xcode 6 从命令行进行 UIAutomation 测试调用

    在新的 Xcode 版本中 从命令行运行 UIAutomation 测试似乎经常会中断 根据过去的帖子判断 由于从未使用过命令行脚本 我发现了 2012 年的这篇文章 来自命令行的自动化仪器 https stackoverflow com
  • setup.py:如何查找用户指定的括号内的附加内容

    我有一个通过 PyPI 分发的包 其中包含大量数据 PyPI 有 100MB 的限制 我想分发比这更多的数据 数据相当不变 因此在每次代码发布时不断将大量数据推送到 PyPI 似乎也很浪费 相反 我更愿意分发最少的数据 并将大数据选项作为可