python 2.7 / exec / 有什么问题?

2023-12-06

我的代码在 Python 2.5 中运行良好,但在 2.7 中运行不佳:

import sys
import traceback
try:
    from io import StringIO
except:
    from StringIO import StringIO

def CaptureExec(stmt):
    oldio = (sys.stdin, sys.stdout, sys.stderr)
    sio = StringIO()
    sys.stdout = sys.stderr = sio
    try:
        exec(stmt, globals(), globals())
        out = sio.getvalue()
    except Exception, e:
        out = str(e) + "\n" + traceback.format_exc()
    sys.stdin, sys.stdout, sys.stderr = oldio
    return out

print "%s" % CaptureExec("""
import random
print "hello world"
""")

我得到:



string argument expected, got 'str'
Traceback (most recent call last):
  File "D:\3.py", line 13, in CaptureExec
    exec(stmt, globals(), globals())
  File "", line 3, in 
TypeError: string argument expected, got 'str'
  

io.StringIO在 Python 2.7 中很令人困惑,因为它是从 3.x 字节/字符串世界向后移植的。此代码得到与您的相同的错误:

from io import StringIO
sio = StringIO()
sio.write("Hello\n")

causes:

Traceback (most recent call last):
  File "so2.py", line 3, in <module>
    sio.write("Hello\n")
TypeError: string argument expected, got 'str'

如果您仅使用 Python 2.x,则跳过io完全模块,并坚持使用 StringIO。如果你真的想使用io,将导入更改为:

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

python 2.7 / exec / 有什么问题? 的相关文章

  • 如何使用 pyinstaller 包含文件?

    我也使用 tkinter 使用 python 3 7 编写了一个程序 由于我使用的是外部图片 因此当我将所有内容编译为一个 exe 时 我需要包含它们 我试过做 add data bg png files 但我仍然收到此错误 tkinter
  • PyQt:如何通过匿名代理使用网页

    这真让我抓狂 我想在 QWebPage 中显示一个 url 但我想通过匿名代理来实现 Code setting up the proxy proxy QNetworkProxy proxy setHostName 189 75 98 199
  • 从Python中的字符串中提取货币金额

    我正在制作一个程序 从字符串中获取货币并将其转换为其他货币 例如 如果字符串是 the car cost me 13 250 我需要得到 and 13250 我已经有了这个正则表达式 1 确实如此 但是该字符串很有可能有多个价格 并且全部使
  • Facebook 身份验证无需重定向?

    有没有办法在不重定向的情况下使用 facebook 身份验证 OAuth 2 0 我没有使用 facebook 登录按钮 所以我应该重定向到https www facebook com dialog oauth https www face
  • 根据开始列和结束列扩展数据框(速度)

    我有一个pandas DataFrame含有start and end列 加上几个附加列 我想将此数据框扩展为一个时间序列 从start值并结束于end值 但复制我的其他专栏 到目前为止 我想出了以下内容 import pandas as
  • numpy 使用 datetime64 进行数字化

    我似乎无法让 numpy digitize 与 datetime64 一起使用 date bins np array np datetime64 datetime datetime 2014 n 1 s for n in range 1 1
  • 登录网站并使用 python 请求下载文件

    我有一个带有 HTML 表单的网站 登录后 它会将我带到 start php 站点 然后将我重定向到overview php 我想从该服务器下载文件 当我单击 ZIP 文件的下载链接时 链接后面的地址是 getimage php path
  • Python Fabric - 未找到主机。请指定用于连接的(单个)主机字符串:

    如何获取 找不到主机 请指定用于连接的 单个 主机字符串 面料如何解决 def bootstrap host ec2 54 xxx xxx xxx compute 1 amazonaws com env hosts host env use
  • python是带有字符串的运算符行为[重复]

    这个问题在这里已经有答案了 我无法理解以下行为 我正在创建 2 个字符串 并使用 is 运算符来比较它 对于第一种情况 它的工作方式有所不同 对于第二种情况 它按预期工作 当我使用逗号或空格时 它显示是什么原因False与比较is当没有使用
  • Pandas 滚动窗口 Spearman 相关性

    我想使用滚动窗口计算 DataFrame 两列之间的 Spearman 和 或 Pearson 相关性 我努力了df corr df col1 rolling P corr df col2 P为窗口尺寸 但我似乎无法定义该方法 添加meth
  • 如何使用 Django 项目设置 SQLite?

    我已阅读 Django 文档 仅供参考 https docs djangoproject com en 1 3 intro tutorial01 https docs djangoproject com en 1 3 intro tutor
  • Python 惰性迭代器

    我试图了解迭代器表达式如何以及何时被求值 以下似乎是一个懒惰的表达 g i for i in range 1000 if i 3 i 2 然而 这个在构造上失败了 g line strip for line in open xxx r if
  • 具有屏蔽无效值的 pcolormesh

    我试图将一维数组绘制为 pcolormesh 因此颜色沿 x 轴变化 但每个 x 的 y 轴保持不变 但我的数据有一些错误值 因此我使用屏蔽数组和自定义颜色图 其中屏蔽值设置为蓝色 import numpy as np import mat
  • Python 类型安全吗?

    根据维基百科 https en wikipedia org wiki Type system Type safety and memory safety 如果一种语言不允许违反类型系统规则的操作或转换 计算机科学家就认为该语言是 类型安全的
  • Python 声音(“铃声”)

    我想让一个 python 程序在完成任务时通过发出嘟嘟声来提醒我 目前 我使用import os然后使用命令行语音程序说 进程完成 我更愿意它是一个简单的 铃 我知道有一个函数可以用于Cocoa apps NSBeep 但我认为这与此没有太
  • 在 virtualenvwrapper 中激活环境

    我安装了virtualenv and virtualenvwrapper用这个命令我创建了一个环境 mkvirtualenv cv 它有效 创建后我就处于新环境中 现在我重新启动了我的电脑 我想activate又是那个环境 但是怎么样 我使
  • 如何在 robobrowser-python 中发出 POST 请求

    http robobrowser readthedocs org en latest api html http robobrowser readthedocs org en latest api html 我正在尝试使用 APIbrows
  • Django 模型:如何使用 mixin 类来覆盖 django 模型以实现 save 等功能

    我想在每次保存模型之前验证值 所以 我必须重写保存函数 代码几乎是一样的 我想把它写在 mixin 类中 但失败了 我不知道如何写 super func 我英语不好 抱歉 class SyncableMixin object def sav
  • 在 Django shell 会话期间获取 SQL 查询计数

    有没有办法打印 Django ORM 在 Django shell 会话期间执行的原始 SQL 查询的数量 Django 调试工具栏已经提供了此类信息 例如 5 QUERIES in 5 83MS但如何从 shell 中获取它并不明显 您可
  • 如何获取所有mysql元组结果并转换为json

    我能够从表中获取单个数据 但是当我试图获取表上的所有数据时 我只得到一行 cnn execute sql rows cnn fetchall column t 0 for t in cnn description for row in ro

随机推荐

  • 在 MS IE11 中启用全屏时无法滚动

    我有一个使用 Bootstrap3 具有固定页眉和页脚的页面 下面的内容是可滚动的 用户可以通过 F11 或按钮 使用 FullScreen API 启用全屏模式 这在 Chrome 和 FF 中工作正常 但在 IE11 中出现问题 F11
  • 复制构造函数未调用

    当我读到复制初始化与直接初始化时here 复制构造函数应该在复制初始化中调用 为什么这里没有调用复制构造函数 include
  • 导入且未使用错误

    我使用以下导入代码收到以下错误 代码 包主 import log net http os github com emicklei go restful github com emicklei go restful swagger api E
  • Hibernate 实体中的 CDI 注入

    我们在应用程序中使用 CDI JSR 299 JSF2 Seam3 0 Hibernate 3 5 6 GlassFish 3 1 1 虽然我们无法使用 Inject 在托管 bean 中注入资源 Helper POJO 但我们也无法在 H
  • 对新创建的文档使用 Get() 时 Firestore 规则失败

    在新创建的文档上使用 Firestore 规则中的 get 会导致返回值为 false 如果您等待几秒钟并命中在同一个新文档上调用 get 的安全规则 则 get 将返回预期值 我是否在规则和 或代码中遗漏了某些内容 或者这是 Firest
  • pandas groupby().head(n) 其中 n 是组标签的函数

    我有一个数据框 我想按列分组并获取每个组的头部 但我希望头部的深度由组标签的函数定义 如果不是可变的组大小 我可以轻松做到df groupby label head n 我可以想象一个涉及迭代的解决方案df label unique 切片数
  • 我需要包含哪个头文件才能使用 Gotoxy() 函数?

    这是学生成绩单项目 当我将这段代码从 borland C 转移到 dev C 时 我遇到了一些问题 现在 当我尝试在 dev C 中编译该程序时 它给出错误消息 gotoxy 未定义 那么我需要包含哪个头文件才能使用 Gotoxy 函数 H
  • 为什么 Android/Java API 中的对象要使用合并排序?

    In Java 数组 sort 对于原始类型使用快速排序 另一方面数组 sort 对于对象使用归并排序 并且 同样适用于集合 sort 它也使用归并排序 集合排序使用底层的数组排序实现 因此 从简单的意义上来说 我可以说基元是使用快速排序来
  • C程序将数字反转

    我正在寻找C反转数字的程序如下 如果我输入 123456 那么结果将是 654321 请帮我 这是这个复杂问题的简单解决方案 include
  • iOS 6 自动旋转混乱

    我将整个界面放在一个故事板中 如何使大多数 ViewController 只支持纵向 而只有少数 ViewController 支持所有方向 我无法理解苹果新的自动旋转系统 另外 如何使其向后兼容 iOS 5 在您的导航控制器子类中 将决策
  • Excel - 计算两个日期之间每个月的天数

    我正在尝试编写一个 Excel 公式 可以将其拖动到一行单元格上 以给出两个指定日期之间每个月的天数 例如 A B C D E F 1 START DATE END DATE Jan Feb Mar Apr 2 10 02 17 15 03
  • 正则表达式从 HTML 中删除所有范围,保持内部文本不变

    我正在寻找一个正则表达式 它可以删除保留内部文本的所有跨度 我的内部 HTML 中有这种跨度 Input 格式正确的 HTML span style font size 10 0pt font family none First span
  • 如何分析内存使用情况?

    我知道 Valgrind 但它只检测内存管理问题 我正在搜索的是一个工具 它可以让我概览程序的哪些部分确实消耗了多少内存 图形表示 例如树形图 就像 KCachegrind 对 Callgrind 所做的那样 会很酷 我在 Linux 机器
  • Oracle SQL*Loader 可以处理 XML 吗?

    Oracle 是否提供 XML 格式文件的标准化上传 我认为用于 XML 输出的规范格式 结构 ROWSET ROW columname 只需使用适当的控制文件内容运行 sqlldr 即可再次上传回表中 但我在网络上找不到任何关于此的信息
  • Google Sheets API 4:如何使用 PHP 附加到行尾

    我可以通过使用提供范围来更新行电子表格 值 更新方法 代码如下 range A1 B1 valueRange new Google Service Sheets ValueRange valueRange gt setValues valu
  • PHP 7.2 函数 create_function() 已弃用

    我用过create function 在我下面的应用程序中 callbacks delimiter create function matches return delimiter strtolower matches 1 但对于 PHP
  • mmap 之后在 memcpy 中获取分段错误 SIGSEGV

    我编写了一个简单的 Android 本机函数 它获取文件名和更多参数 并通过映射 mmap 内存来读取文件 因为它是 mmap 所以我实际上不需要调用 read 所以我只需从 mmap 返回的地址中调用 memcpy 即可 但是 在某个地方
  • Websocket 在 Firefox 中失败

    我在用袖珍插座作为 iOS 上的 LAN WebSocket 服务器 在端口 8080 上 我使用 javascript 连接到它 这是 JavaScript 代码 var address ws window location host 8
  • 我如何从父组件中设计子组件的样式?

    我有父组件和子组件 当我在另一个组件中使用我的 html 时 我使用我的 css 例如 我在我的父组件中 HTML div class chips p class tags Tag 1 p div CSS chips tags color
  • python 2.7 / exec / 有什么问题?

    我的代码在 Python 2 5 中运行良好 但在 2 7 中运行不佳 import sys import traceback try from io import StringIO except from StringIO import