write_history_file("pyHistory"): 'str' 对象没有属性 'mode'

2024-02-02

我正在关注这个答案 https://stackoverflow.com/a/47595405/2153235将 Python 命令历史记录写入文件,该文件依赖于readline模块和写入历史文件其中的功能。我必须考虑在 Windows 10 上使用 Conda 提示符的差异,这只是为 Conda 设置了环境变量的 CMD 提示符。对于此用例,c:\User.Name 中没有历史文件,这是典型的情况。另外,我需要pyreadline3 https://stackoverflow.com/a/51964654/2153235.

这是我找到“模块路径”的方法写入历史文件 in pyreadline3:

from pprint import pprint
import inspect, pyreadline3
pprint(inspect.getmembers(pyreadline3.Readline))

   <...snip...>
   ('write_history_file',
    <function BaseReadline.write_history_file at 0x000001D67D83D280>)]^M^[[25l
   <...snip...>

有一些令人费解的面向终端的控制字符,因为我使用了 Cygwin 的 Bash 和typescript启动 Conda(参见here https://stackoverflow.com/a/76520838/2153235),但“路径”显示为BaseReadline.write_history_file。我得到的语法是写入历史文件 from 这个答案 https://stackoverflow.com/a/47595405/2153235。这是我使用它的方式,导致“AttributeError”:

>>> pyreadline3.BaseReadline.write_history_file('pyHistory')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Users\User.Name\.conda\envs\py39\lib\site-packages\pyreadline3\rlmain.p y",
             line 180, in write_history_file
    self.mode._history.write_history_file(filename)
AttributeError: 'str' object has no attribute 'mode'

即使我修饰文件名,我也会得到相同的 AttributeErrorpyHistory带双引号。我在上面的 AttributeError 错误中唯一能找到的是本次问答 https://stackoverflow.com/questions/54969871/attributeerror-str-object-has-no-attribute-mode但它似乎并不适用,因为答案是提供了错误类型的参数。

还有什么方法可以追踪此错误的原因?

对我来说,越简单越好。我正在尝试访问实时命令历史记录,因为它可以帮助我尝试并开始使用 Python(和 Conda),来自历史记录始终可用的 Matlab。


pyreadline3 and readline是两个不同的模块。您复制该代码的答案是为了readline.write_history_file https://github.com/pyreadline/pyreadline/blob/master/pyreadline/rlmain.py#L167,它接受单个字符串作为参数。

你正在尝试打电话pyreadline3.BaseReadline.write_history_file https://github.com/pyreadline/pyreadline/blob/master/pyreadline/rlmain.py#L167,这是一个不同的函数。事实上,它实际上不是一个函数,而是一个方法。所以当你尝试跑步时BaseReadline.write_history_file("..."),你正在传递字符串"..."作为实例对象self。这就是为什么它会发生灾难性的爆炸。

要正确使用该方法,您需要首先创建一个实例BaseReadline(或者实际上是一个适当的子类,例如Readline)。然后您可以在该实例上调用该方法:

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

write_history_file("pyHistory"): 'str' 对象没有属性 'mode' 的相关文章

  • Python 的键盘中断不会中止 Rust 函数 (PyO3)

    我有一个使用 PyO3 用 Rust 编写的 Python 库 它涉及一些昂贵的计算 单个函数调用最多需要 10 分钟 从 Python 调用时如何中止执行 Ctrl C 好像只有执行结束后才会处理 所以本质上没什么用 最小可重现示例 Ca
  • 将数据从 python pandas 数据框导出或写入 MS Access 表

    我正在尝试将数据从 python pandas 数据框导出到现有的 MS Access 表 我想用已更新的数据替换 MS Access 表 在 python 中 我尝试使用 pandas to sql 但收到错误消息 我觉得很奇怪 使用 p
  • OpenCV Python cv2.mixChannels()

    我试图将其从 C 转换为 Python 但它给出了不同的色调结果 In C Transform it to HSV cvtColor src hsv CV BGR2HSV Use only the Hue value hue create
  • 使用带有关键字参数的 map() 函数

    这是我尝试使用的循环map功能于 volume ids 1 2 3 4 5 ip 172 12 13 122 for volume id in volume ids my function volume id ip ip 我有办法做到这一点
  • Flask 会话变量

    我正在用 Flask 编写一个小型网络应用程序 当两个用户 在同一网络下 尝试使用应用程序时 我遇到会话变量问题 这是代码 import os from flask import Flask request render template
  • 根据列值突出显示数据框中的行?

    假设我有这样的数据框 col1 col2 col3 col4 0 A A 1 pass 2 1 A A 2 pass 4 2 A A 1 fail 4 3 A A 1 fail 5 4 A A 1 pass 3 5 A A 2 fail 2
  • 测试 python Counter 是否包含在另一个 Counter 中

    如何测试是否是pythonCounter https docs python org 2 library collections html collections Counter is 包含在另一个中使用以下定义 柜台a包含在计数器中b当且
  • 基于代理的模拟:性能问题:Python vs NetLogo & Repast

    我正在 Python 3 中复制一小段 Sugarscape 代理模拟模型 我发现我的代码的性能比 NetLogo 慢约 3 倍 这可能是我的代码的问题 还是Python的固有限制 显然 这只是代码的一个片段 但 Python 却花费了三分
  • 使用 Tkinter 显示 numpy 数组中的图像

    我对 Python 缺乏经验 第一次使用 Tkinter 制作一个 UI 显示我的数字分类程序与 mnist 数据集的结果 当图像来自 numpy 数组而不是我的 PC 上的文件路径时 我有一个关于在 Tkinter 中显示图像的问题 我为
  • 将 CrashDumps 转储到应用程序运行所在的同一文件夹中

    我编写了一个应用程序 我希望对其进行一定程度的自动调试 我想使用 Windows 错误报告将故障转储输出到应用程序运行所在的同一文件夹中 我的想法是 我可以让我的应用程序在它自己的文件夹中查找任何 dmp 文件 然后根据需要上传它们进行分析
  • OpenCV 无法从 MacBook Pro iSight 捕获

    几天后 我无法再从 opencv 应用程序内部打开我的 iSight 相机 cap cv2 VideoCapture 0 返回 并且cap isOpened 回报true 然而 cap grab 刚刚返回false 有任何想法吗 示例代码
  • 如何在Python中获取葡萄牙语字符?

    我正在研究葡萄牙语 角色看起来很奇怪 我怎样才能解决这个问题 代码 import feedparser import random Vou definir os feeds feeds conf feedurl http pplware s
  • BeautifulSoup 中的嵌套标签 - Python

    我在网站和 stackoverflow 上查看了许多示例 但找不到解决我的问题的通用解决方案 我正在处理一个非常混乱的网站 我想抓取一些数据 标记看起来像这样 table tbody tr tr tr td td td table tr t
  • SetCurrentDirectoryW 中的错误 206

    在我之后之前不清楚的问题 https stackoverflow com questions 44389617 long path name in setcurrentdirectoryw 我以某种方式能够创建一个具有长路径名的目录 但是
  • 在f字符串中转义字符[重复]

    这个问题在这里已经有答案了 我遇到了以下问题f string gt gt gt a hello how to print hello gt gt gt f a a gt gt gt f a File
  • python获取上传/下载速度

    我想在我的计算机上监控上传和下载速度 一个名为 conky 的程序已经在 conky conf 中执行了以下操作 Connection quality alignr wireless link qual perc wlan0 downspe
  • 如何在seaborn displot中使用hist_kws

    我想在同一图中用不同的颜色绘制直方图和 kde 线 我想为直方图设置绿色 为 kde 线设置蓝色 我设法弄清楚使用 line kws 来更改 kde 线条颜色 但 hist kws 不适用于显示 我尝试过使用 histplot 但我无法为
  • 如何在 Python 中追加到 JSON 文件?

    我有一个 JSON 文件 其中包含 67790 1 kwh 319 4 现在我创建一个字典a dict我需要将其附加到 JSON 文件中 我尝试了这段代码 with open DATA FILENAME a as f json obj js
  • 如何计算 pandas 数据帧上的连续有序值

    我试图从给定的数据帧中获取连续 0 值的最大计数 其中包含来自 pandas 数据帧的 id date value 列 如下所示 id date value 354 2019 03 01 0 354 2019 03 02 0 354 201
  • 如何使用 Pycharm 安装 tkinter? [复制]

    这个问题在这里已经有答案了 I used sudo apt get install python3 6 tk而且效果很好 如果我在终端中打开 python Tkinter 就可以工作 但我无法将其安装在我的 Pycharm 项目上 pip

随机推荐