Doctest 无法识别 __future__.division

2024-01-02

我写了以下文档测试x.doctest:

This is something:

    >>> x = 3 + 4

foo bar something else:

    >>> from __future__ import division
    >>> y = 15
    >>> z = int('24')
    >>> m = z / y
    >>> print (m)
    1.6

但当我跑的时候python -m doctest x.doctest在 python 2.7.11 上,doctest 无法识别from __future__ import division:

**********************************************************************
File "x.doctest", line 11, in x.doctest
Failed example:
    print (m)
Expected:
    1.6
Got:
    1
**********************************************************************
1 items had failures:
   1 of   6 in x.doctest
***Test Failed*** 1 failures.

即使我将未来的导入语句移至第一行:

This is something:

    >>> from __future__ import division
    >>> x = 3 + 4

foo bar something else:

    >>> y = 15
    >>> z = int('24')
    >>> m = z / y
    >>> print (m)
    1.6

文档测试仍然失败:

**********************************************************************
File "x.doctest", line 11, in x.doctest
Failed example:
    print (m)
Expected:
    1.6
Got:
    1
**********************************************************************
1 items had failures:
   1 of   6 in x.doctest
***Test Failed*** 1 failures.

为什么会这样?我该如何解决这个问题?

doctest 是否有一个标志/选项要求确保from __future__ import division被认可吗?

注意:我可以强制检查print (int(m)) or y = 15.文档测试会通过,但这并不是那么理想。


文档测试运行每一行隔离中通过Python编译器。这意味着任何用 a 指定的编译器标志from __future__ import ..陈述在文档测试本身中在文档测试中没有用。

然而,你can添加真实姓名__future__ module https://docs.python.org/2/library/__future__.html到你的 doctest 全局变量。如果你don't使用from __future__ import <name>格式但使用import __future__相反,您导入实际的模块,并且可以将对其定义的对象的引用添加到 doctestglobs or extraglobs字典:

 if __name__ == "__main__":
     import doctest
     import __future__
     doctest.testmod(extraglobs={'division': __future__.division})

The DocTestRunner然后,在编译这些行的各个行时,将为您设置正确的编译器标志。

Demo:

>>> import doctest
>>> import __future__
>>> import sys
>>> def foo():
...     """
...     >>> 1 / 2
...     0.5
...     """
...
>>> doctest.testmod(sys.modules['__main__'])
**********************************************************************
File "__main__", line 3, in __main__.foo
Failed example:
    1 / 2
Expected:
    0.5
Got:
    0
**********************************************************************
1 items had failures:
   1 of   1 in __main__.foo
***Test Failed*** 1 failures.
TestResults(failed=1, attempted=1)
>>> doctest.testmod(sys.modules['__main__'], extraglobs={'division': __future__.division})
TestResults(failed=0, attempted=1)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Doctest 无法识别 __future__.division 的相关文章

  • 在 Python 中对数据进行求和

    Given that the fitting function is of type 我打算将这样的函数拟合到我拥有的实验数据 x y f x 中 但后来我有一些疑问 当涉及求和时 如何定义拟合函数 一旦定义了函数 即def func re
  • 为什么Python有最大递归深度?

    Python有最大递归深度 但没有最大迭代深度 为什么递归受到限制 把递归当成迭代来对待 而不限制递归调用的次数不是更自然吗 我只想说这个问题的根源来自于尝试实现流 参见这个问题 https stackoverflow com questi
  • 带有指针数组的 cython

    我在 python 中有一个 numpy ndarrays 列表 具有不同的长度 并且需要非常快速地访问 python 中的列表 我认为指针数组就可以解决问题 我试过 float type t list of arrays no of ar
  • 美丽的汤从谷歌搜索中提取href

    谷歌搜索给出了以下 HTML 的第一个结果 h3 class r a href https rads stackoverflow com amzn click com 0470284889 class l vst em Quantitati
  • 无法在 mysql 表中的值中使用破折号(-)[重复]

    这个问题在这里已经有答案了 我一直在尝试从 python 将数据插入 MYSQL 表 我的sql表中的字段是id token start time end time和no of trans 我想存储使用生成的令牌uuid4在令牌栏中 但由于
  • 创建圆形图像 PIL Tkinter

    Currently I have a zoom feature in my application that works very well however I d like the actual zoom box to be a circ
  • 引发 RuntimeError(f"目录 '{directory}' 不存在") RuntimeError: 导入 fitz 时目录 'static/' 不存在

    当我运行 extract img py 文件时出现此错误 RuntimeError f 目录 directory 不存在 运行时错误 导入 fitz 时不存在目录 static 我不明白为什么这会给我发回此错误消息 我之前看到过关于这个话题
  • 创建一个打开文件并创建字典的函数

    我有一个正在处理的文件 我想创建一个读取文件并将内容放入字典中的函数 然后该字典需要通过 main 函数传递 这是主程序 它无法改变 我所做的一切都必须与主程序配合 def main sunspot dict file str raw in
  • 将 matplotlib png 转换为 base64 以在 html 模板中查看

    背景 你好 我正在尝试制作一个简单的网络应用程序 按照教程计算阻尼振动方程 并将结果的 png 返回到 html 页面 然后将其转换为 Base64 字符串 Problem 该应用程序运行正常 只是在计算结果时返回损坏的图像图标 可能是因为
  • 十六进制数的按位异或

    我们如何在 Python 中对十六进制数进行异或 例如 我想要异或 ABCD and 12EF 答案应该是 B922 我使用了下面的代码 但它给出了错误的结果 xor two strings of different lengths def
  • 在加载“cv2”二进制扩展期间检测到递归

    我有一个小程序 在 pyinstaller 编译后返回 opencv 错误 但无需编译即可工作 我在 Windows 10 上使用 Python 3 8 10 Program 导入 pyautogui将 numpy 导入为 np导入CV2
  • 理解@property装饰器和继承[重复]

    这个问题在这里已经有答案了 这里是 Python 3 以防万一它很重要 我试图正确理解如何实现继承 property使用 我已经搜索了 StackOverflow 并阅读了大约 20 个类似的问题 但无济于事 因为他们试图解决的问题略有不同
  • 如何使用 python 操作系统更改驱动器?

    我正在尝试更改当前目录C to Y 我试过 import os os chdir Y 但我不断收到错误消息 提示无法找到驱动器 本质上我正在寻找相当于 cd d cmd 中的命令 你确定吗Y 确实是有效的驱动器号吗 Try os chdir
  • InvalidArgumentException:消息:无效参数:“using”必须是字符串

    我对 python 很陌生 试图创建可重用的代码 当我尝试通过传递 Login 类下使用的所有参数来调用 test main py 中的 Login 类和函数 login user 时 我收到错误 InvalidArgumentExcept
  • 在 MATLAB 中创建共享库

    一位研究人员在 MATLAB 中创建了一个小型仿真 我们希望其他人也能使用它 我的计划是进行模拟 清理一些东西并将其变成一组函数 然后我打算将其编译成C库并使用SWIG https en wikipedia org wiki SWIG创建一
  • 如何从数据框的单元格中获取值?

    我构建了一个条件 从我的数据框中提取一行 d2 df df l ext l ext df item item df wn wn df wd 1 现在我想从特定列中获取一个值 val d2 col name 但结果 我得到一个包含一行和一列
  • x11 - 导入错误:没有名为“kivy.core.window.window_x11”的模块

    目前我正在尝试构建一个我通过 buildozer 用 Python 和 Kivy 编写的应用程序 无论我在做什么 我都会遇到 window x11 的问题 即使我在代码中注释掉所有与 Windows 相关的内容或执行本文中描述的所有操作 这
  • 如何在 Python 中执行相当于预处理器指令的操作?

    有没有办法在 Python 中执行以下预处理器指令 if DEBUG lt do some code gt else lt do some other code gt endif There s debug 这是编译器预处理的特殊值 if
  • Jinja2中获取请求参数

    如何检索请求参数a在 Jinja2 模板中 http foo bar a 1 我这个答案有点晚了 但其他解决方案并没有真正考虑到您对 Flask 的使用 事实上 您将 Flask 与 Jinja2 一起使用 这使得您的情况与其他框架有点不同
  • Selenium Python 使用代理运行浏览器[重复]

    这个问题在这里已经有答案了 我正在尝试编写一个非常简单的脚本 该脚本从 txt 文件获取代理 不需要身份验证 并用它打开浏览器 然后沿着代理列表循环此操作一定次数 我确实知道如何打开 txt 文件并使用它 我的主要问题是让代理正常工作 我见

随机推荐

  • 在 Angular 中使用 AngularJS 服务

    我正在寻找 Angular 项目中包含 AngularJS 服务 这是我的 main ts import platformBrowserDynamic from angular platform browser dynamic import
  • auth.User.groups:(fields.E304)“User.groups”的反向访问器与“UserManage.groups”的反向访问器冲突

    在我的 Django 项目中 我有一个user manage app 我创建了一个名为UserManage in my user manage应用程序的model py from django db import models from d
  • 返回 Bash 脚本中的正则表达式匹配项,而不是替换它

    我只想匹配 Bash 脚本中的一些文本 我尝试过使用 sed 但我似乎无法让它只输出匹配项而不是用某些东西替换它 echo E TestT100String sed s 0 9 dontReplace g 哪个会输出TestTdontRep
  • 我如何知道 PDF 页面是彩色还是黑白?

    给定一组 PDF 文件 其中一些页面是彩色的 其余页面是黑白的 是否有任何程序可以找出给定页面中哪些页面是彩色的 哪些页面是黑白的 例如 这在打印论文时很有用 并且只需花费额外的费用来打印彩页 对于考虑双面打印并将适当的黑白页面发送到彩色打
  • R:使用 rvest 包而不是 XML 包从 URL 获取链接

    我使用 XML 包来获取链接this url http www bvl com pe includes empresas todas dat Parse HTML URL v1WebParse lt htmlParse v1URL Read
  • 在圆形叠加层中绘制文本

    我正在尝试在 MKMapView 上绘制一些包含文本的圆形叠加层 我对 MKCircleView 进行了子类化 在其中放置了以下内容 基于this https stackoverflow com questions 4165842 draw
  • 主键违规错误后继续事务

    我正在从日志文件将记录批量插入数据库 有时 每千行中约有 1 行 其中一行违反了主键并导致事务失败 目前 用户必须手动检查导致失败的文件并删除有问题的行 然后才能尝试重新导入 鉴于有数百个这样的文件需要导入 这是不切实际的 我的问题 如何跳
  • 可以使用 CSS 设计 Tkinter GUI 样式吗? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 如果不是内置功能 是否有附加包允许 Python 的 Tkinter 使用 CSS 如果您可以使用 CSS 则无法以相同的方式设置样式
  • 如何从句子中标记的 word2vec 中获取句子的向量

    我已经使用 word2vec 从大型文档中生成了标记列表的向量 给定一个句子 是否可以从句子中标记的向量得到该句子的向量 有不同的方法来获取句子向量 Doc2Vec 您可以使用 Doc2Vec 训练数据集 然后使用句子向量 Word2Vec
  • Web 配置中的“全局元素‘配置’已被声明”

    我在网络配置中收到烦人的构建警告 我收到了大约 40 条警告Global element element name has already been declared对于我的网络配置中的所有元素 这是针对我在与 MVC 网站相同的解决方案中
  • 当非管理员尝试访问 wp-admin 或 wp-login.php 时,如何将用户重定向到 404 页面未找到错误

    出于安全原因 我试图通过重写链接来限制我的 WordPress 网站管理员和登录面板对非管理员用户的访问 这样如果用户输入http www mysite com wp login php http www mysite com wp log
  • 传入 Apple 推送通知的端口号

    需要在网络上打开哪些网络服务 端口号 传出传入或两者同时打开 iPod touch 才能接收 Apple 推送通知 我知道发送 apns 时要设置的传出端口号 唯一的问题是 在我的学校 几乎每个传出 和传入 端口都被阻止 因此 APN 不起
  • 如何让 mongo 映射器在 Rails 4 中生成 config/mongo.yml 文件

    我正在尝试使用 Mongo Mapper gem 制作一个 Rails 应用程序 我按照 Mongo Mapper 文档中的说明进行操作 链接在这里 Mongo 映射器文档 http mongomapper com documentatio
  • 可排序 + 可拖动演示 - 如何访问放置的项目?

    我有一个可排序的列表 当一个新项目 从可拖动的项目 放入列表中时 我想访问它以对其执行一些操作 这就是我所拥有的 mySortableList sortable receive function event ui alert this is
  • 在 Objective C 类别中使用 Super?

    我想重写 Objective C 类中的一个方法 但我没有源代码 我已经研究过了 看来类别应该允许我这样做 但我想在我的新方法中使用旧方法的结果 使用 super 来获取旧方法的结果 每当我尝试这个时 我的方法都会被调用 但 超级 为零 知
  • Google 脚本,根据上次修改日期删除文件夹中的文件

    我正在尝试创建一个脚本 该脚本每周一次通过共享驱动器运行 并删除过去 90 天内未修改的任何内容 我在这里发现了一些脚本似乎没有按照我的预期工作 我目前拥有的脚本如下 但由于某种原因它似乎不起作用 但似乎应该起作用 它似乎识别了文件 但似乎
  • eval 有什么作用以及为什么它是邪恶的? [复制]

    这个问题在这里已经有答案了 var myString x myObject x 10 value eval myObject myString alert value alert myObject myString 评估是邪恶的 http
  • Excel 多行条件色标

    我有一个电子表格 显示一系列产品的库存数据 我每天都有一个专栏 其中的值显示我的库存水平将如何随着时间的推移而减少 我想使用色标来轻松查看某些产品的库存何时会变少 我的量表的最小值 中值和最大值基于不同列中的值 并且每个产品的值都不同 根据
  • 使用 java 获取便携式设备

    我正在尝试访问设备中的一些文件 具有 Windows CE 其中的应用程序 显示为便携式设备在 windows 7 中使用 java applet 我的设备路径是这样的 Computer Attari s Device myfile txt
  • Doctest 无法识别 __future__.division

    我写了以下文档测试x doctest This is something gt gt gt x 3 4 foo bar something else gt gt gt from future import division gt gt gt