setup.py:在尝试安装之前需要最新版本的 setuptools

2024-01-12

我正在创建一个包含'typing;python_version<"3.5"'在它的install_requires。显然,这种依赖规范 https://www.python.org/dev/peps/pep-0508/#examples仅在最新版本中实现setuptools。如果setuptools在用户的机器上是旧的他们会得到:

“install_requires”必须是包含有效项目/版本要求说明符的字符串或字符串列表;预期版本规格 打字;python_version

简单的解决方案是告诉用户pip install 'setuptools>=36.2.1' before pip install my-package。 (注意36.2.1只是我知道有效的版本,不一定是绝对最低要求)

但有什么办法可以明确这个要求吗?setup.py这样它就自动完成了?添加setuptools>=36.2.1 to install_requires and setup_requires不工作。它说Installed /tmp/pip-si2fqg-build/.eggs/setuptools-38.2.5-py3.3.egg然后给出与上面相同的错误。


你无法更新setuptools并一次性在安装脚本中使用其代码。我看到两种可能的解决方案: 如果您想支持旧版本setuptools,您不能使用环境标记。使用以下方法自行执行检查sys.version_info:

import sys
from setuptools import setup


setup(
    name='spam',
    version='0.1',
    packages=[],
    install_requires=['typing'] if sys.version_info < (3, 5) else []
)

如果您不想支持旧版本setuptools,检查其版本并提前中止,通知用户:

import sys
from distutils.version import StrictVersion
from setuptools import setup, __version__


if StrictVersion(__version__) < StrictVersion('20.2'):
    print('your setuptools version does not support PEP 508. Upgrade setuptools and repeat the installation.')
    sys.exit(1)


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

setup.py:在尝试安装之前需要最新版本的 setuptools 的相关文章

  • MissingGreenlet:greenlet_spawn 尚未被调用

    我正在尝试获取一对多关系中匹配的行数 当我尝试时parent children count I get sqlalchemy exc MissingGreenlet greenlet spawn尚未被调用 不能在这里调用await only
  • 在信号处理程序中使用变量 - 需要全局吗?

    我有一个信号处理程序来处理 ctrl c 中断 如果在信号处理程序中我想读取主脚本中设置的变量 那么在设置变量时是否有其他方法可以使用 全局 语句 我不介意这样做 但请阅读这篇文章 你在Python中使用 global 语句吗 https
  • 使用 Scipy (Python) 将经验分布拟合到理论分布?

    介绍 我有超过 30 000 个整数值的列表 范围从 0 到 47 含 例如 0 0 0 0 1 1 1 1 2 2 2 2 47 47 47 从一些连续分布中采样 列表中的值不一定按顺序排列 但顺序对于此问题并不重要 PROBLEM 根据
  • Python - 将整数或字符串发送到 Spark-Streaming

    我可以通过 CSV 文件发送我的数据 首先 将我的随机数写入CSV文件然后发送 但是可以直接发送吗 我的套接字代码 import socket host localhost port 8080 s socket socket socket
  • Tweepy 连接中断:IncompleteRead - 处理异常的最佳方法?或者,线程可以帮助避免吗?

    我正在使用 tweepy 处理大型 Twitter 流 关注 4 000 多个帐户 添加到流中的帐户越多 出现此错误的可能性就越大 Traceback most recent call last File myscript py line
  • pydantic 转换为 jsonable dict (不是完整的 json 字符串)

    我想用pydantic用于处理 api 和数据存储之间的数据 双向 因为它很好地支持我关心的几种本身不能 json 序列化的类型 它比当前方法具有更好的读取 验证支持 但我还需要创建 json serializeddict要写出的对象 fr
  • 使用 numpy 和 matplotlib 绘制总和直方图,而不是计数

    我有一些每行两列的数据 就我而言 工作提交时间和区域 我使用 matplotlib 的 hist 函数生成一个图表 其中 x 轴上按天划分时间 y 轴上按天计数 import numpy as np import matplotlib py
  • NE、SW 盒内的 GeoDjango

    我正在使用 Google 地图创建一个地理应用程序 并收到 2 个坐标的边界框 东北 西南 我有一个带有 PointField 的模型 from django contrib gis db import models class Place
  • 如何将字符串转换为电话号码

    我一直被这个问题困扰了很长时间 这就是问题 编写一个函数 以字符串作为参数并返回电话号码 对应于该字符串作为结果 电话号码也应该是一个字符串 转换规则是标准单词到电话号码的规则 a b 或 c 映射到 2 d e 或 f 映射到 3 g h
  • 使用 python 检测给定音频文件中的静音索引

    我正在尝试使用 numpy struct 等各种模块在 python 中处理音频文件 但是我真的很难检测文件中的静音 就像在哪里存在静音一样 我遇到的方法之一是在音频信号上滑动固定时间间隔的窗口并记录元素平方和 我是Python新手 几乎不
  • 从图中删除节点或重置整个默认图

    使用默认全局图时 是否可以在添加节点后将其删除 或者将默认图重置为空 当我在 IPython 中交互地使用 TF 时 我发现自己必须反复重新启动内核 如果可能的话 我希望能够更轻松地尝试图表 更新 11 2 2016 tf reset de
  • 子进程+多重处理-按顺序执行多个命令

    我有一组命令行工具 我想在一系列文件上并行运行 我写了一个 python 函数来包装它们 看起来像这样 def process file fn print os getpid cmd1 echo fn p subprocess Popen
  • pytest 是否有类似 google test 的非致命 EXPECT_* 行为?

    我更熟悉谷歌测试框架并了解他们支持的主要行为对ASSERT vs EXPECT 这是致命和非致命断言模式 来自文档 https github com google googletest blob master googletest docs
  • Pandas 在 groupby 之后获取行

    假设我有以下数据集 uid iid val 1 1 2 1 2 3 1 3 4 1 4 4 5 1 5 5 5 2 1 3 2 2 3 2 3 4 3 4 4 5 3 5 5 5 根据这些数据 我想首先按 uid 进行分组 然后从每个 ui
  • 如何在 psycopg 中使用 SELECT 查询找到空值?

    我在 python 中使用 psycopg2 库INSERT当我用 None 插入 null 值时 查询效果很好 但是当我想做的时候SELECTnull 值 None 不返回任何值 cur execute SELECT id FROM re
  • Python win32com 使用 Bloomberg 插件打开 Excel

    我正在尝试自动构建 Excel 2007 电子表格 该电子表格使用 Bloomberg 插件来降低实时价格 问题是 当我通过 win32com 打开 Excel 时 Bloomberg 插件不会加载 因此所有公式最终都会出现 NAME 错误
  • 为 Python 终端提供持久的历史记录

    有没有办法告诉交互式 Python shell 保留会话之间执行命令的历史记录 当会话运行时 在执行命令后 我可以向上箭头并访问所述命令 我只是想知道是否有某种方法可以保存一定数量的这些命令 直到下次使用 Python shell 时 这将
  • NumPy“记录数组”或“结构化数组”或“recarray”

    NumPy 结构化数组 记录数组 和 记录数组 之间有什么区别 如果有的话 The NumPy 文档 http docs scipy org doc numpy user basics rec html暗示前两个是相同的 如果是 那么该对象
  • HTTP实时音频流服务器

    作为概念验证 我需要创建一个 HTTP 服务器 该服务器在 GET 请求时应启动连续的非编码 非压缩音频数据流 WAV PCM16 我们假设音频数据是 4096 个随机生成的单声道音频样本块 采样率为 44 1kHz 我应该在 HTTP 响
  • 使用 python 在 txt 文件中查找字符串的最佳方法是什么?

    使用 python 在 txt 文件中查找字符串一定有多种方法 但最好的方法是什么 为了速度 为了资源 我的第一个想法如下 file open home socfw src edl outbound monthly txt inputIP

随机推荐