是否可以在 setup.py 中表达特定于平台的依赖项,而无需构建特定于平台的 Egg 版本?

2024-01-18

我们有一个占位符 Egg,它不包含任何代码,其存在的目的只是为了从 PyPi 存储库中提取依赖包列表。

大多数这些依赖包与平台无关,但有些仅在 Win32 平台上使用。

是否有可能以某种方式使依赖项成为有条件的平台,以便我的给定依赖项install_requires仅在 Win32 上安装时才会下拉列表?

或者:是否可以指定可选依赖项列表,如果可用,将安装该列表,但不会导致easy_install如果他们不这样做就会失败?


对于 sdist,鸡蛋和车轮释放自:https://setuptools.readthedocs.io/en/latest/userguide/dependency_management.html#platform-specific-dependencies https://setuptools.readthedocs.io/en/latest/userguide/dependency_management.html#platform-specific-dependencies

有时,项目可能需要依赖项才能在特定平台上运行。这可能是一个向后移植模块的包,以便它可以在较旧的 python 版本中使用。或者它可能是在特定操作系统上运行所需的包。这将允许项目在多个不同的平台上工作,而无需安装安装该项目的平台不需要的依赖项。

setup(
    name="Project",
    ...
    install_requires=[
        'enum34 ; python_version<"3.4"',
        'pywin32 >= 1.0 ; platform_system=="Windows"'
    ]
)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

是否可以在 setup.py 中表达特定于平台的依赖项,而无需构建特定于平台的 Egg 版本? 的相关文章

  • httplib.BadStatusLine: '' 在 Linux 上,但在 Mac 上则不然

    这个错误已经困扰我几个小时了 我决定编写一个单独的项目 只是为了看看我是否可以复制它 而且我可以 但只能在我的服务器上复制 这适用于我的 Mac Mac OSX El Capitan 10 11 6 服务器 CentOS 7 2 1511
  • for 循环在 Python 中生成/导出输出所需的时间太长

    这个问题是上一个问题的延续for 循环花费太长时间才能产生输出 https stackoverflow com questions 41339200 for loop taking too long to produce output no
  • 在Linux中的端口80上运行flask[重复]

    这个问题在这里已经有答案了 也许以前有过这个问题的答案 所以请重定向我 如果是这样的话 我正在考虑在端口 80 上运行 Flask 所以我检查了是否有任何东西正在使用端口 80 因为事实证明端口 80 没有运行 所以当我输入以下内容时 if
  • UnicodeDecodeError:“charmap”编解码器无法解码位置 2483 中的字节 0x81:字符映射到 <未定义>

    我正在解析 csv 文件 但收到以下错误 import os import csv from collections import defaultdict demo data defaultdict list if os path exis
  • Flask - 如何从 JSON GET 请求获取参数

    我有一个发出以下 GET 请求的客户端 api GET tasks 5fe7eabd 842e 40d2 849e 409655e0891d 22task 22 22hello 22 22url 22 22 tasks 5fe7eabd 8
  • Python绕相机轴旋转图像

    假设我有一个图像 是在对某些原始图像应用单应性变换 H 后获得的 未显示原始图像 将单应性 H 应用于原始图像的结果是该图像 我想围绕合适的轴 可能是相机所在的位置 如果有的话 将此图像旋转 30 度以获得此图像 如果我不知道相机参数 如何
  • Pandas cut 方法不包括下限

    我正在尝试对包含 0 到 100 范围内的年龄的数据帧列进行分箱 当我尝试使用垃圾箱来包含零年龄时 它不起作用 这是一个使用包含我的数据范围的列表的演示 pd cut pd Series range 101 0 24 49 74 100 范
  • 点击后 Dash DropDown 关闭

    我不希望下拉菜单在选择值后关闭 我希望它在我的页面上保持打开状态 我正在使用 dcc Dropdown dcc Dropdown id job type options self options placeholder Select one
  • Web 应用程序框架:C++ 与 Python

    作为一名程序员 我熟悉 Python 和 C 我正在考虑编写自己的简单 Web 应用程序 并且想知道哪种语言更适合服务器端 Web 开发 我正在寻找一些东西 它必须是直观的 我认识到 Wt 存在并且它遵循 Qt 的模型 我讨厌 Qt 的一件
  • 提取二值图像中的最中心区域

    我正在处理二进制图像 之前使用此代码来查找二进制图像中的最大区域 Use the hue value to convert to binary thresh 20 thresh thresh img cv2 threshold h thre
  • 在Python中从整个图像中检测表格部分

    我有一张尺寸为 3500x5000 的图像 现在我只想检测整个图像中的表格部分 如果不能直接进行 OCR 处理 则对其进行裁剪和旋转 经过所有搜索后 我想到了使用裁剪图像中的每个单元格的想法https medium com coinmonk
  • 有什么理由不在Python中混合使用多处理和线程模块

    我正在考虑使用Python来实现一个需要大量多线程的程序 另一个要求是它将在桌面上运行 因此拥有许多进程将使应用程序显得混乱且难以杀死 在任务管理器中 因此 我正在考虑使用线程和多处理模块来减少进程数量 据我了解 GIL 仅适用于单个进程
  • Django - 从时间戳获取不同的日期

    我正在尝试按日期过滤用户 但直到我可以找到数据库中用户的第一个和最后一个日期为止 虽然我可以让我的脚本稍后过滤掉重复项 但我想从一开始就使用 Django 来完成此操作distinct因为它显着减少 我试过 User objects val
  • Python 多处理:全局对象未正确复制到子级

    前几天我回答了一个关于SO的问题 https stackoverflow com q 67047533 1925388关于并行读取 tar 文件 这是问题的要点 import bz2 import tarfile from multipro
  • 从 Cython 代码生成 SIMD 指令

    我需要概述在高性能数字代码中使用 Cython 可以获得的性能 我感兴趣的事情之一是找出优化的 C 编译器是否可以对 Cython 生成的代码进行矢量化 所以我决定写下面的小例子 import numpy as np cimport num
  • 在 CSV 文件的最上面一行写入

    我有这个sample csv 文件 a 1 apple b 2 banana c 3 cranberry d 4 durian e 5 eggplant 并有以下代码 samplefile open sample csv rb rows s
  • 如何在Python中一次比较二维数组的2列与另一个数组的列

    我有两个字符串数组 每个数组有三列 我想比较两个二维数组的前两列 有 3 列和 4000 行 如果它们匹配 那么我需要那些匹配的值 但是我的代码不起作用 这是一个示例 array1 1stcolumn 2ndColumn 3rdColumn
  • 类型错误:不可散列的类型:pandas 的“切片”

    我有一个 pandas 数据结构 我这样创建 test inputs pd read csv input test csv delimiter 它的形状 print test inputs shape is this 28000 784 我
  • 按键合并的两个字典的值的并集

    我有两本词典 d1 a x y b k l d2 a m n c p r 如何合并这两个字典以获得这样的结果 d3 a x y m n b k l c p r 当字典的值是简单类型 如 int 或 str 时 这有效 d3 dict i a
  • 如何找到 JAR:/home/hadoop/contrib/streaming/hadoop-streaming.jar

    我正在练习有关 Amazon EMR 的复数视角视频教程 我被困住了 因为我收到此错误而无法继续 Not a valid JAR home hadoop contrib streaming hadoop streaming jar 请注意

随机推荐

  • 使用不同工具链存档时,Xcode 不支持“Enable Bitcode=YES”

    我已将 启用位码 设置为YES在我的构建设置中 当我使用默认工具链在 Xcode 9 2 中存档我的框架时 然后运行命令检查位码是否在二进制文件中otool arch arm64 l MyFrameworkBinary grep LLVM
  • 我很好奇 ldc 在 JVM 中的缩写是什么?

    ByteCode ldc将一个单字常量压入操作数栈 ldc 采用单个参数 它是要推送的值 JVM中的大部分字节码都可以通过代码描述得知它们的名称 然而 ldc 我没有看到任何线索 它是负载常数 它将常量池中的一项加载到堆栈上 可用的类型有
  • Xamarin 形式的 iPhone X 中的额外底部和顶部空间

    我使用 XAML 进行 UI 设计 我的应用程序在 Iphone X 设备上运行良好 Iphone X 中唯一的问题是顶部和底部有额外空间 如果我使用下面的代码来启用 Iphone X 安全区域 它会在底部和顶部获得更多空间 On
  • 无法删除 matplotlib polycollection 中的原点

    我尝试了 matplotlib 教程中的 PolyCollection 示例 并注意到一件奇怪的事情 我无法从轴原点删除这个点 见图 我该如何处理这个问题 from mpl toolkits mplot3d import Axes3D fr
  • 如何从原生 php 转换为 codeigniter

    我有以下数据库和PHP 我正在尝试制作类别菜单的无序列表 原来的 php 是自己工作的 我正在尝试将其转换为 Codeigniter 中的 MVC 以下是我到目前为止所得到的结果 但无法正常工作 如果有人能指出我做错了什么 我将不胜感激 D
  • SQL:如何从单个列中选择满足多个条件的单个 id(“行”)

    我有一个非常窄的表 user id ancestry user id 列是不言自明的 祖先列包含用户祖先的国家 地区 一个用户可以在表上拥有多行 因为一个用户可以拥有来自多个国家 地区的祖先 我的问题是 如何选择祖先来自多个指定国家 地区的
  • 在汇编中生成随机数

    我是汇编新手 在生成随机数时遇到问题 我的代码很简单 它在中生成 100 个数字0 25范围并将它们存储在数组中 我遇到的问题是 当我在emu8086汇编程序成功运行并生成 100 个随机数 并将其存储在数组中 但是当我在masm611 每
  • 如何在 C# 中使用 SqlTransaction

    我正在使用以下代码同时执行两个命令 我使用 SqlTransaction 来确保所有命令都得到执行或回滚 当我在没有 事务 的情况下运行程序时 它运行正常 但是当我对他们使用 交易 时 他们显示错误 My code SqlTransacti
  • 如何在 tsconfig.json 中指定多个源文件夹?

    我目前有以下项目结构 project tsconfig json webpack config js package json node modules lots of dependencies typings lots of d ts f
  • 从应用程序洞察中删除跟踪

    我已使用 Application Insights 在 Azure 中部署了我的项目 部署后 我做了一些测试 了解为什么一些跟踪写入各自的 Application Insights 中 但是 我只想要一个新的 没有任何痕迹 Applicat
  • 向事件添加委托 - 线程安全

    可以从多个线程同时执行以下代码 this sequencer Completed OnActivityFinished 从多个线程向事件处理程序添加委托是否是线程安全的 从多个线程中删除事件处理程序的委托是否是线程安全的 使该线程安全的最简
  • 无法在 Spring 3 REST Web 服务中反序列化 START_ARRAY 令牌之外的对象实例

    我正在利用Spring提供的这个很酷的东西 Spring RESTWebService spring的版本是3 如果我从浏览器访问 URL 我可以看到 JSON 响应 但从客户端端点 Android 应用程序 我收到此错误消息 Caused
  • 单括号和双括号 Numpy 数组有什么区别?

    import numpy as np a np random randn 1 2 b np zeros 1 2 print Data type of A type a print Data type of A type b Output D
  • 针对 XSD 的 XML 验证:元素必须没有字符或元素信息项

    为什么我的 XML 无法根据以下 XSD 进行验证 我的 XML 文件是这样的
  • 如何在模块中导入 lib 文件夹

    我有一个 GAE 应用程序 其中包含三个模块和一个 lib 文件夹 当我尝试从 lib 文件夹导入第 3 方库时 GAE 弹出导入错误 我可以通过将 lib 符号链接到 Module 1 lib 和 Module 2 lib 并在每个模块中
  • 使用 axios 从 React 前端启用 CORS?

    我在前端使用 React 并且从我不拥有的另一个域调用 API 我的 axios 请求 axios requestURL method GET headers Access Control Allow Origin Content Type
  • 我的工具栏在 API 级别 19 (Kitkat) 上不显示,而在 API 级别 21 上显示

    我的代码没有在 Kitkat 上显示工具栏 这是我针对两个 Android 版本的屏幕截图 奇巧版本 棒棒糖版本 这背后的原因可能是什么 清单文件
  • Java 7u51不接受带有自签名证书的JNLP?

    我在网上看到Java版本7u51 将于2014年1月发布 将不再接受我自签名的Java Webstart应用程序 真的吗 如果这是真的 我是否有机会为我的 JNLP 申请构建一个解决方法 以便我即使在 2014 年 1 月之后也能够启动该申
  • Ansible concat vars 到字符串

    我花了一天的大部分时间试图解决这个问题 但到目前为止都失败了 我正在构建一些剧本来自动化 Splunk 中的功能 并尝试将清单组中的主机列表转换为 E G search head 1 2 3 4 5 6 7 8 我从该剧的调试输出中获得的预
  • 是否可以在 setup.py 中表达特定于平台的依赖项,而无需构建特定于平台的 Egg 版本?

    我们有一个占位符 Egg 它不包含任何代码 其存在的目的只是为了从 PyPi 存储库中提取依赖包列表 大多数这些依赖包与平台无关 但有些仅在 Win32 平台上使用 是否有可能以某种方式使依赖项成为有条件的平台 以便我的给定依赖项insta