Python pip freeze 中的三等号和 ubuntu2 是什么?

2024-02-01

在我的 AWS Ubuntu 14.04 实例上,我刚刚做了一个pip freeze > requirements.txt这给了我一个文件,其中还包含以下两行:

python-apt===0.9.3.5ubuntu2
python-debian===0.1.21-nmu2ubuntu2

当我然后使用这个文件做一个pip install -r requirements.txt在另一个 AWS Ubuntu 14.04 实例上,我得到以下回溯:

Traceback (most recent call last):
  File "/usr/lib/python2.7/dist-packages/pip/basecommand.py", line 122, in main
    status = self.run(options, args)
  File "/usr/lib/python2.7/dist-packages/pip/commands/install.py", line 262, in run
    for req in parse_requirements(filename, finder=finder, options=options, session=session):
  File "/usr/lib/python2.7/dist-packages/pip/req.py", line 1632, in parse_requirements
    req = InstallRequirement.from_line(line, comes_from, prereleases=getattr(options, "pre", None))
  File "/usr/lib/python2.7/dist-packages/pip/req.py", line 173, in from_line
    return cls(req, comes_from, url=url, prereleases=prereleases)
  File "/usr/lib/python2.7/dist-packages/pip/req.py", line 71, in __init__
    req = pkg_resources.Requirement.parse(req)
  File "/usr/lib/python2.7/dist-packages/pkg_resources.py", line 2667, in parse
    reqs = list(parse_requirements(s))
  File "/usr/lib/python2.7/dist-packages/pkg_resources.py", line 2605, in parse_requirements
    line, p, specs = scan_list(VERSION,LINE_END,line,p,(1,2),"version spec")
  File "/usr/lib/python2.7/dist-packages/pkg_resources.py", line 2573, in scan_list
    raise ValueError("Expected "+item_name+" in",line,"at",line[p:])
ValueError: ('Expected version spec in', 'python-apt===0.9.3.5ubuntu2', 'at', '0.9.3.5ubuntu2')

我在这里想知道两件事:

  1. 为什么pip freeze使用ubuntu2在版本的最后?
  2. 为什么pip freeze使用===代替==?

[EDIT]

还有一个问题:

  1. 为什么其他机器上的pip不接受===ubuntu2(我分别尝试了两者)?

The === is the 任意平等条款 https://www.python.org/dev/peps/pep-0440/#arbitrary-equality并在 PEP-0440 中定义:

任意相等比较是简单的字符串相等操作 不考虑任何语义信息,例如 零填充或本地版本。该运营商也不支持 前缀匹配就像 == 运算符一样。

任意相等的主要用例是允许指定 该 PEP 无法以其他方式表示的版本。这 操作员是特殊的,充当逃生舱口,允许有人使用 实现此 PEP 以仍然安装旧版本的工具 否则与本 PEP 不兼容。

一个例子是 ===foobar ,它将匹配 foobar 的版本。

该运算符也可用于明确要求未打补丁的 项目的版本,例如 ===1.0,它与 版本 1.0+downstream1 。

强烈建议不要使用此运算符,工具可能会显示 使用时发出警告。

您应该升级目标计算机上的 pip 版本(pip install --upgrade pip)并且它不应该显示错误消息。

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

Python pip freeze 中的三等号和 ubuntu2 是什么? 的相关文章

  • 为什么 Linux 原始套接字的 RX 环大小限制为 4GB?

    背景 我试图mmap 我的原始套接字的 RX 环形缓冲区64 bitLinux 应用程序 我的环由 4096 个块组成 每个块大小为 1MB 总共 4GB 请注意 每个 1MB 块中可以有许多帧 如果您好奇 请参阅此文档了解背景信息 htt
  • 在循环中每次迭代开始时将变量重新分配给原始值(在循环之前定义)

    在Python中 你使用 在每次迭代开始时将变量重新分配给原始值 在循环之前定义 时 也就是说 original 1D o o o for i in range 0 3 new original 1D revert back to orig
  • Python 中的二进制缓冲区

    在Python中你可以使用StringIO https docs python org library struct html用于字符数据的类似文件的缓冲区 内存映射文件 https docs python org library mmap
  • Abaqus 将曲面转化为集合

    我一直试图在模型中找到两个表面的中心 参见照片 但未能成功 它们是元素表面 面 查询中没有选项可以查找元素表面的中心 只能查找元素集的中心 找到节点集的中心也很好 但是我的节点集没有出现在工具 gt 查询 gt 质量属性选项中 而且我找不到
  • SSH,运行进程然后忽略输出

    我有一个命令可以使用 SSH 并在 SSH 后运行脚本 该脚本运行一个二进制文件 脚本完成后 我可以输入任意键 本地终端将恢复到正常状态 但是 由于该进程仍在我通过 SSH 连接的计算机中运行 因此任何时候它都会登录到stdout我在本地终
  • 使用 OpenPyXL 迭代工作表和单元格,并使用包含的字符串更新单元格[重复]

    这个问题在这里已经有答案了 我想使用 OpenPyXL 来搜索工作簿 但我遇到了一些问题 希望有人可以帮助解决 以下是一些障碍 待办事项 我的工作表和单元格数量未知 我想搜索工作簿并将工作表名称放入数组中 我想循环遍历每个数组项并搜索包含特
  • 表达式中的 Python 'in' 关键字与 for 循环中的比较 [重复]

    这个问题在这里已经有答案了 我明白什么是in运算符在此代码中执行的操作 some list 1 2 3 4 5 print 2 in some list 我也明白i将采用此代码中列表的每个值 for i in 1 2 3 4 5 print
  • 为什么 CloudFront 根据 Accept-Encoding 改变 CORS 标头响应?

    我正在尝试让 CORS 与 Amazon S3 CloudFront 一起正常工作 设置我的 CORS 配置后 它似乎可以正常工作 curl H Origin https app close io I https d4389n07pf8cq
  • ExpectedFailure 被计为错误而不是通过

    我在用着expectedFailure因为有一个我想记录的错误 我现在无法修复 但想将来再回来解决 我的理解expectedFailure是它会将测试计为通过 但在摘要中表示预期失败的数量为 x 类似于它如何处理跳过的 tets 但是 当我
  • Numpy 优化

    我有一个根据条件分配值的函数 我的数据集大小通常在 30 50k 范围内 我不确定这是否是使用 numpy 的正确方法 但是当数字超过 5k 时 它会变得非常慢 有没有更好的方法让它更快 import numpy as np N 5000
  • 从 pygame 获取 numpy 数组

    我想通过 python 访问我的网络摄像头 不幸的是 由于网络摄像头的原因 openCV 无法工作 Pygame camera 使用以下代码就像魅力一样 from pygame import camera display camera in
  • 为美国东部以外地区的 Cloudwatch 警报发送短信?

    AWS 似乎没有为美国东部以外的 SNS 主题订阅者提供 SMS 作为协议 我想连接我的 CloudWatch 警报并在发生故障时接收短信 但无法将其发送到 SMS YES 经过一番挖掘后 我能够让它发挥作用 它比仅仅选择一个主题或输入闹钟
  • 如何在 Django 中使用并发进程记录到单个文件而不使用独占锁

    给定一个在多个服务器上同时执行的 Django 应用程序 该应用程序如何记录到单个共享日志文件 在网络共享中 而不保持该文件以独占模式永久打开 当您想要利用日志流时 这种情况适用于 Windows Azure 网站上托管的 Django 应
  • Python:计算字典的重复值

    我有一本字典如下 dictA unit1 test1 alpha unit1 test2 beta unit2 test1 alpha unit2 test2 gamma unit3 test1 delta unit3 test2 gamm
  • 如何从没有结尾的管道中读取 python 中的 stdin

    当管道来自 打开 时 不知道正确的名称 我无法从 python 中的标准输入或管道读取数据 文件 我有作为例子管道测试 py import sys import time k 0 try for line in sys stdin k k
  • 在python中,如何仅搜索所选子字符串之前的一个单词

    给定文本文件中的长行列表 我只想返回紧邻其前面的子字符串 例如单词狗 描述狗的单词 例如 假设有这些行包含狗 hotdog big dog is dogged dog spy with my dog brown dogs 在这种情况下 期望
  • 循环标记时出现“ValueError:无法识别的标记样式 -d”

    我正在尝试编码pyplot允许不同标记样式的绘图 这些图是循环生成的 标记是从列表中选取的 为了演示目的 我还提供了一个颜色列表 版本是Python 2 7 9 IPython 3 0 0 matplotlib 1 4 3 这是一个简单的代
  • Spark.read 在 Databricks 中给出 KrbException

    我正在尝试从 databricks 笔记本连接到 SQL 数据库 以下是我的代码 jdbcDF spark read format com microsoft sqlserver jdbc spark option url jdbc sql
  • Python - 字典和列表相交

    给定以下数据结构 找出这两种数据结构共有的交集键的最有效方法是什么 dict1 2A 3A 4B list1 2A 4B Expected output 2A 4B 如果这也能产生更快的输出 我可以将列表 不是 dict1 组织到任何其他数
  • Python 分析:“‘select.poll’对象的‘poll’方法”是什么?

    我已经使用 python 分析了我的 python 代码cProfile模块并得到以下结果 ncalls tottime percall cumtime percall filename lineno function 13937860 9

随机推荐

  • 按钮动作监听器

    好的 所以我制作了一个简单的程序 每次单击按钮时都会添加要计数器的值 现在 我想添加 自动 按钮功能 以在单击 自动 按钮时增加计数器的值 我遇到了问题 因为它不会在屏幕上呈现每个计数器值 而是在循环完成时更新值 这是我的代码 import
  • 用正则表达式替换第 n 个匹配项

    我正在尝试找到一种方法来替换更多比赛的第n场比赛 string one two three one one 如何定位第二次出现的 一 可以做这样的事情吗 string replace bone b gi 2 one 得到这样的东西 one
  • 迁移 Feign Load Balancer 实现以兼容 Spring cloud 2020.0.0

    我有以下与 Spring Cloud 一起使用的 Feign 负载均衡器的实现Hoxtan SR6依赖关系 import feign auth BasicAuthRequestInterceptor import org apache ht
  • C# GC 不释放内存[重复]

    这个问题在这里已经有答案了 我在 C 中度过了一段糟糕的时光 在我不再引用它之后 它没有为我保存在内存中的大型结构释放内存 我在下面添加了一些代码 这些代码展示了与我遇到的问题类似的问题 我想我一定是误解了关于 GC 的一些东西 因为我不确
  • C# 只读计算属性,它们应该是方法吗?

    我有几个实体具有计算字段 例如 TotalCost 现在我将它们全部作为属性 但我想知道它们是否实际上应该是方法 有这方面的 C 标准吗 public class WorkOrder public int LaborHours get se
  • gdb:记录一些东西而不是破坏?

    是否可以让 gdb 将某些内容记录到终端而不是中断它 例如 我想在某个方法上设置一个 断点 并让 gdb 在每次调用该方法时打印 self 以及参数 基本上我想将打印语句插入任意位置而不实际重新编译 感谢您的任何建议 这是我在这些有用的评论
  • 在 Visual Studio 中更改项目中所有图像的“构建操作”属性?

    我想知道是否有办法更新 Visual Studio 项目中所有图像的属性 我有多个嵌套的图像文件夹 我想将它们的 构建操作 属性从 资源 更改为 内容 目前我只能突出显示并选择 更改一个文件夹中的所有图像 当我有数百个文件夹和数千个图像时
  • update_sequence 更改了 cloudant 数据库中的语义?

    我使用 cloudant couchdb 我注意到数据库上的 changes 查询返回的 update sequence 不是数字 例如 437985 g1AAAADveJzLYWBgYM 更重要的是 响应不稳定 如果查询数据库 3 次 我
  • Tomcat v7.0 Server 中的 Apache Axis2 Web 服务运行时不支持服务项目 Test

    Tomcat v7 0 Server 中的 Apache Axis2 Web 服务运行时不支持服务项目 Test 为什么 请帮我 我刚刚遇到了同样的问题 事实证明 Axis2不喜欢Eclipse的3 0动态Web项目 只需创建一个新的动态W
  • 在Python中将一个类的方法安全地绑定到另一个类[重复]

    这个问题在这里已经有答案了 我知道我可以将一个函数附加到一个类并使其成为一个方法 gt gt gt def is not bound inst name print Hello s name gt gt gt gt gt gt class
  • 停止调用 JNI 函数的 Java 线程

    在这里我想停止我的线程或杀死我的线程它是在Java层创建的 该线程正在调用JNI函数 有时根据我的应用程序要求 我必须停止此操作JNI函数执行在某些条件下 如果它正在进行 否则不会 new Thread new Runnable Overr
  • 如何管理具有不同数据库模式的git分支?

    我有一个项目 需要开发一项新功能 该功能需要重新设计部分数据库 同时保持主要开发分支在旧模式上工作 您管理此类项目的最佳实践是什么 我考虑过在开发新功能时拥有一个单独的数据库 但意识到这需要将数据库配置签入存储库 这是不行的 我还有其他方法
  • Angular2 与 Material Design Lite

    我在我的 angular2 应用程序中添加了以下代码 以帮助 MDL 在应用程序中移动时重新注册组件 ngAfterViewInit componentHandler upgradeDom 尽管它似乎工作正常 如预期 但我收到以下错误 16
  • 什么可以解释调用 free() 时的堆损坏?

    我已经调试了几天的崩溃 该崩溃发生在 OpenSSL 的深处 与维护者讨论here https www mail archive com openssl dev openssl org msg38571 html 我花了一些时间进行调查 所
  • 基本数据类型(字符串和整数)如何在 Python 和 Perl 中实现

    最近我一直想知道我对字符串和整数等基本类型执行的各种操作在性能方面如何工作 并且我认为如果我知道这些基本类型是如何实现的 即我已经听说 Python 中字符串和整数是不可变的 这是否意味着任何修改字符串中一个字符的操作都是 O n 因为必须
  • sql中的特殊字符排序

    我有名为 联系人 的表 有名为 id 和 name 的列 各列值如下所示 ID Name 1 ABC 3 DEF 2 GHI JKL null MNO null PQR 我需要查询要在顶行列出的特殊字符 如下所示 ID Name JKL 1
  • CakePHP:Ajax 请求的控制器响应错误

    我正在使用 jQuery 向某些控制器操作发出 AJAX 请求 该请求是通过同一控制器中编辑操作视图中的按钮激活的 我的问题 Ajax 请求返回编辑视图的所有代码 包含所有表单和输入 而不是预期的数量 如果我将相同的 ajax 按钮放在添加
  • javascript 在 Rails 3.1 基于资产的应用程序中包含两次

    尽管问题的标题与之前的一些问题非常相似 但我的问题似乎有所不同 简要地 第一项在 js 清单中包含两次 这是我的全部 app assets javascript application jsRails 3 1 应用程序中的文件 requir
  • iOS:UIPageViewController - 使用按钮跳转到下一页

    我在 PageViewController 中有一系列 VC 用户可以用手指从左到右导航 我需要添加按钮 这些按钮基本上执行与手指滑动相同的操作 即通过 VC 向左或向右移动 1 个 我怎样才能做到这一点 现在我正在使用这两种方法在用户滑动
  • Python pip freeze 中的三等号和 ubuntu2 是什么?

    在我的 AWS Ubuntu 14 04 实例上 我刚刚做了一个pip freeze gt requirements txt这给了我一个文件 其中还包含以下两行 python apt 0 9 3 5ubuntu2 python debian