Msys2:两个 python 安装中的 readline

2023-12-01

我将编辑放在最上面,因此读者不需要找到当前状态。

这是与中提到的两个 python 安装相关的特定问题Msys2:维护两个 python 安装

$ pacman -Sl | grep "python " | grep "installed"
mingw64 mingw-w64-x86_64-python 3.8.2-2 [installed]
msys python 3.8.2-1 [installed]


EDIT #2:

很明显,readline下面引用的不是python包,而是shell的。 至于readline对于python来说,每个包提供的文件有

$ pacman -Ql python | grep readline
python /usr/lib/python3.8/lib-dynload/readline.cpython-38-i386-msys.dll
python /usr/lib/python3.8/lib2to3/fixes/fix_xreadlines.py
python /usr/lib/python3.8/test/test_readline.py
$ pacman -Ql mingw-w64-x86_64-python | grep readline
mingw-w64-x86_64-python /mingw64/lib/python3.8/lib2to3/fixes/__pycache__/fix_xreadlines.cpython-38.opt-1.pyc
mingw-w64-x86_64-python /mingw64/lib/python3.8/lib2to3/fixes/__pycache__/fix_xreadlines.cpython-38.opt-2.pyc
mingw-w64-x86_64-python /mingw64/lib/python3.8/lib2to3/fixes/__pycache__/fix_xreadlines.cpython-38.pyc
mingw-w64-x86_64-python /mingw64/lib/python3.8/lib2to3/fixes/fix_xreadlines.py
mingw-w64-x86_64-python /mingw64/lib/python3.8/test/__pycache__/test_readline.cpython-38.opt-1.pyc
mingw-w64-x86_64-python /mingw64/lib/python3.8/test/__pycache__/test_readline.cpython-38.opt-2.pyc
mingw-w64-x86_64-python /mingw64/lib/python3.8/test/__pycache__/test_readline.cpython-38.pyc
mingw-w64-x86_64-python /mingw64/lib/python3.8/test/test_readline.py

So, 为什么包里有 pythonmingw-w64-x86_64-python没有找到readline(见下文),有办法解决这个问题吗?与包中的 python 进行比较python, 其中有readline可用的。

$ python3.8         <-- This is /usr/bin/python3.8, from msys python
Python 3.8.2 (default, Apr 16 2020, 15:31:48)
[GCC 9.3.0] on msys
Type "help", "copyright", "credits" or "license" for more information.
Reading /home/RY16205/.pythonrc
readline is in /usr/lib/python3.8/lib-dynload/readline.cpython-38-i386-msys.dll
>>>
$ /mingw64/bin/python3.8.exe        <-- From mingw64 python. Have to call it with full path, otherwise msys python is run
Python 3.8.2 (default, Apr  9 2020, 13:17:39)  [GCC 9.3.0 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
Reading C:/Users/RY16205/Documents/appls_mydocs/PortableApps/MSYS2Portable/App/msys32/home/RY16205/.pythonrc
Module readline not available.
Traceback (most recent call last):
  File "C:/Users/RY16205/Documents/appls_mydocs/PortableApps/MSYS2Portable/App/msys32/home/RY16205/.pythonrc", line 42, in <module>
    del os, atexit, readline, rlcompleter, save_history, historyPath
NameError: name 'readline' is not defined
>>>


======TL;DR======
EDIT #1

重新安装的详细输出如下所示。 下面还给出了每个包提供的文件列表。 值得注意的是导入时符号之间的(明显)不匹配msys readline:

readline is in /usr/lib/python3.8/lib-dynload/readline.cpython-38-i386-msys.dll

事实上,这个文件不是由包提供的msys readline,如下所列。 此外,它似乎是由msys python,

$ pacman -Qo readline.cpython-38-i386-msys.dll
error: No package owns readline.cpython-38-i386-msys.dll
$ pkgfile.exe readline.cpython-38-i386-msys.dll
msys/python

尽管这之间进一步的不匹配pkgfile and pacman -Qo值得另一个问题。

重新安装mingw-w64-x86_64-readline

$ pacman -S -v mingw-w64-x86_64-readline
Root      : /
Conf File : /etc/pacman.conf
DB Path   : /var/lib/pacman/
Cache Dirs: /var/cache/pacman/pkg/
Hook Dirs : /usr/share/libalpm/hooks/  /etc/pacman.d/hooks/
Lock File : /var/lib/pacman/db.lck
Log File  : /var/log/pacman.log
GPG Dir   : /etc/pacman.d/gnupg/
Targets   : mingw-w64-x86_64-readline
warning: mingw-w64-x86_64-readline-8.0.004-1 is up to date -- reinstalling
resolving dependencies...
looking for conflicting packages...

Packages (1) mingw-w64-x86_64-readline-8.0.004-1

Total Installed Size:  1.56 MiB
Net Upgrade Size:      0.00 MiB

:: Proceed with installation? [Y/n] y
(1/1) checking keys in keyring                                                                         [###########################################################] 100% (1/1) checking package integrity                                                                       [###########################################################] 100% (1/1) loading package files                                                                            [###########################################################] 100% (1/1) checking for file conflicts                                                                      [###########################################################] 100% (1/1) checking available disk space                                                                    [###########################################################] 100% :: Processing package changes...
(1/1) reinstalling mingw-w64-x86_64-readline                                                           [###########################################################] 100% 

每个包提供的文件列表

$ pacman -Ql mingw-w64-x86_64-readline
mingw-w64-x86_64-readline /mingw64/
mingw-w64-x86_64-readline /mingw64/bin/
mingw-w64-x86_64-readline /mingw64/bin/libhistory8.dll
mingw-w64-x86_64-readline /mingw64/bin/libreadline8.dll
mingw-w64-x86_64-readline /mingw64/include/
mingw-w64-x86_64-readline /mingw64/include/readline/
mingw-w64-x86_64-readline /mingw64/include/readline/chardefs.h
mingw-w64-x86_64-readline /mingw64/include/readline/history.h
mingw-w64-x86_64-readline /mingw64/include/readline/keymaps.h
mingw-w64-x86_64-readline /mingw64/include/readline/readline.h
mingw-w64-x86_64-readline /mingw64/include/readline/rlconf.h
mingw-w64-x86_64-readline /mingw64/include/readline/rlstdc.h
mingw-w64-x86_64-readline /mingw64/include/readline/rltypedefs.h
mingw-w64-x86_64-readline /mingw64/include/readline/tilde.h
mingw-w64-x86_64-readline /mingw64/lib/
mingw-w64-x86_64-readline /mingw64/lib/libhistory.a
mingw-w64-x86_64-readline /mingw64/lib/libhistory.dll.a
mingw-w64-x86_64-readline /mingw64/lib/libreadline.a
mingw-w64-x86_64-readline /mingw64/lib/libreadline.dll.a
mingw-w64-x86_64-readline /mingw64/lib/pkgconfig/
mingw-w64-x86_64-readline /mingw64/lib/pkgconfig/readline.pc
mingw-w64-x86_64-readline /mingw64/share/
mingw-w64-x86_64-readline /mingw64/share/doc/
mingw-w64-x86_64-readline /mingw64/share/doc/readline/
mingw-w64-x86_64-readline /mingw64/share/doc/readline/CHANGES
mingw-w64-x86_64-readline /mingw64/share/doc/readline/INSTALL
mingw-w64-x86_64-readline /mingw64/share/doc/readline/README
mingw-w64-x86_64-readline /mingw64/share/info/
mingw-w64-x86_64-readline /mingw64/share/info/history.info.gz
mingw-w64-x86_64-readline /mingw64/share/info/readline.info.gz
mingw-w64-x86_64-readline /mingw64/share/info/rluserman.info.gz
mingw-w64-x86_64-readline /mingw64/share/man/
mingw-w64-x86_64-readline /mingw64/share/man/man3/
mingw-w64-x86_64-readline /mingw64/share/man/man3/history.3.gz
mingw-w64-x86_64-readline /mingw64/share/man/man3/readline.3.gz
mingw-w64-x86_64-readline /mingw64/share/readline/
mingw-w64-x86_64-readline /mingw64/share/readline/excallback.c
mingw-w64-x86_64-readline /mingw64/share/readline/fileman.c
mingw-w64-x86_64-readline /mingw64/share/readline/hist_erasedups.c
mingw-w64-x86_64-readline /mingw64/share/readline/hist_purgecmd.c
mingw-w64-x86_64-readline /mingw64/share/readline/histexamp.c
mingw-w64-x86_64-readline /mingw64/share/readline/manexamp.c
mingw-w64-x86_64-readline /mingw64/share/readline/rl-callbacktest.c
mingw-w64-x86_64-readline /mingw64/share/readline/rl-fgets.c
mingw-w64-x86_64-readline /mingw64/share/readline/rl.c
mingw-w64-x86_64-readline /mingw64/share/readline/rlbasic.c
mingw-w64-x86_64-readline /mingw64/share/readline/rlcat.c
mingw-w64-x86_64-readline /mingw64/share/readline/rlevent.c
mingw-w64-x86_64-readline /mingw64/share/readline/rlkeymaps.c
mingw-w64-x86_64-readline /mingw64/share/readline/rlptytest.c
mingw-w64-x86_64-readline /mingw64/share/readline/rltest.c
mingw-w64-x86_64-readline /mingw64/share/readline/rlversion.c

$ pacman -Ql libreadline
libreadline /usr/
libreadline /usr/bin/
libreadline /usr/bin/msys-history8.dll
libreadline /usr/bin/msys-readline8.dll
libreadline /usr/share/
libreadline /usr/share/doc/
libreadline /usr/share/doc/readline/
libreadline /usr/share/doc/readline/CHANGES
libreadline /usr/share/doc/readline/INSTALL
libreadline /usr/share/doc/readline/README
libreadline /usr/share/info/
libreadline /usr/share/info/history.info.gz
libreadline /usr/share/info/readline.info.gz
libreadline /usr/share/info/rluserman.info.gz
libreadline /usr/share/man/
libreadline /usr/share/man/man3/
libreadline /usr/share/man/man3/history.3.gz
libreadline /usr/share/man/man3/readline.3.gz
libreadline /usr/share/readline/
libreadline /usr/share/readline/excallback.c
libreadline /usr/share/readline/fileman.c
libreadline /usr/share/readline/hist_erasedups.c
libreadline /usr/share/readline/hist_purgecmd.c
libreadline /usr/share/readline/histexamp.c
libreadline /usr/share/readline/manexamp.c
libreadline /usr/share/readline/rl-callbacktest.c
libreadline /usr/share/readline/rl-fgets.c
libreadline /usr/share/readline/rl.c
libreadline /usr/share/readline/rlbasic.c
libreadline /usr/share/readline/rlcat.c
libreadline /usr/share/readline/rlevent.c
libreadline /usr/share/readline/rlkeymaps.c
libreadline /usr/share/readline/rlptytest.c
libreadline /usr/share/readline/rltest.c
libreadline /usr/share/readline/rlversion.c


OP

我好像有readline在两个 python 中都安装了,但在一种情况下找不到它。 我想拥有应该没有问题readline同时。

问题是什么?我该如何解决?我宁愿暂时保留两条蟒蛇。 我不确定为什么我最终同时拥有两者,所以我怀疑它们(至少在某一时刻)出于某种原因都需要。

附: 这两个python很可能是从[这个“玩”][1]的主角升级而来,python 3.8(之前的3.8.1)升级到mingw-w64-x86_64-python 3.8.2-2和 python 3.7 升级到python 3.8.2-1.

支持代码/信息

$ pacman -Sl | grep readline
mingw32 mingw-w64-i686-python-pyreadline 2.1-1
mingw32 mingw-w64-i686-readline 8.0.004-1
mingw64 mingw-w64-x86_64-python-pyreadline 2.1-1
mingw64 mingw-w64-x86_64-readline 8.0.004-1 [installed]
msys libreadline 8.0.004-1 [installed]

I import readline in .pythonrc(两者相同), 我想每个蟒蛇应该能够找到its readline. But mingw64 python没有找到its readline, while msys python finds its readline.

$ python3.8         <-- This is /usr/bin/python3.8, from msys python
Python 3.8.2 (default, Apr 16 2020, 15:31:48)
[GCC 9.3.0] on msys
Type "help", "copyright", "credits" or "license" for more information.
Reading /home/RY16205/.pythonrc
readline is in /usr/lib/python3.8/lib-dynload/readline.cpython-38-i386-msys.dll
>>>
$ /mingw64/bin/python3.8.exe        <-- From mingw64 python. Have to call it with full path, otherwise msys python is run
Python 3.8.2 (default, Apr  9 2020, 13:17:39)  [GCC 9.3.0 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
Reading C:/Users/RY16205/Documents/appls_mydocs/PortableApps/MSYS2Portable/App/msys32/home/RY16205/.pythonrc
Module readline not available.
Traceback (most recent call last):
  File "C:/Users/RY16205/Documents/appls_mydocs/PortableApps/MSYS2Portable/App/msys32/home/RY16205/.pythonrc", line 42, in <module>
    del os, atexit, readline, rlcompleter, save_history, historyPath
NameError: name 'readline' is not defined
>>>

None

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

Msys2:两个 python 安装中的 readline 的相关文章

随机推荐

  • 未找到续集关联者

    我有一个项目正在尝试使用sequelize 它可以很好地创建数据库和表 但它永远找不到关联类方法 因此它永远不会调用关联方法 此代码可以很好地创建表 使用导入方法 但 Object keys db 会迭代每个模型 但它永远找不到关联方法 f
  • FFmpeg 无需解码视频即可获取运动向量

    我想访问 h264 视频流的运动向量而不解码视频 我知道这显示了视频和运动矢量 ffplay i myvideo avi flags2 export mvs vf codecview mv pf bf bb 如何避免解码整个视频以节省 CP
  • 如何通过传递特定日期来确定星期几?

    例如 我的日期是 23 2 2010 2010 年 2 月 23 日 我想将它传递给一个函数 该函数将返回星期几 我怎样才能做到这一点 在此示例中 该函数应返回String Tue 此外 如果只需要日期序号 如何检索 是的 根据您的具体情况
  • 如何使用迭代器在向量中导航? (C++)

    目标是访问字符串向量的 第 n 个元素 而不是 运算符或 at 方法 据我了解 迭代器可用于在容器中导航 但我以前从未使用过迭代器 而且我正在阅读的内容令人困惑 如果有人能给我一些关于如何实现这一目标的信息 我将不胜感激 谢谢 您需要利用b
  • 如何计算多线程进程的总计算时间

    我有一组任务 我们称之为T 其中每个任务T i 需要一定的时间t T i 待处理 这些任务正在并行处理X线程 这并不是说多个线程共同处理单个任务 而是多个线程正在处理多个任务 每个线程执行一个任务 然后执行下一个任务 依此类推 现在我想计算
  • geom_hexbin 将 bincount 映射到 alpha

    我希望将 geom hex bincount 设置为 alpha 就像完成的那样here 不知怎的 它对我不起作用 可能出了什么问题 ggplot2 的开发版本 library ggplot2 library reshape2 dm lt
  • 在随机字符串内使用正则表达式匹配日期

    我正在尝试这样做Java 我收到这种字符串 12 07 2004dddsss12 10 2010 rr r r10 01 2000ksdifjsdifffffdd04 04 1998 然后我必须在该字符串中找到一个或多个日期 日期格式 dd
  • 如何使用 UITypeEditor 创建简单的 Visual Studio Automation Extender

    在 Visual Studio 中 当您在解决方案资源管理器中选择项目或项目项时 有时您可能希望将自定义属性添加到属性窗口 按 F4 时弹出的窗口 此外 为了填写这些属性的值 我需要添加一个按钮来弹出表单 以便我可以在设计时从用户那里收集信
  • Python Pydub 权限被拒绝?

    当我运行这段代码时 from pydub import AudioSegment sound AudioSegment from mp3 i mp3 sound export F bh format wav A ffmpeg window
  • 使用 chromedriver 从 Selenium 打印 PDF

    我正在尝试使用 Selenium chromedriver 和 python 实现将 html css 内容打印为 PDF 我可以使用以下代码进行打印 但无法更改打印设置 我想以 Letter 尺寸打印 并且没有页眉 页脚 官方信息铬驱动程
  • HTML“no-js”类的目的是什么?

    我注意到在很多模板引擎中HTML5 样板 在各种框架和普通 php 站点中都有no js类添加到 tag 为什么要这样做 是否有某种默认浏览器行为对此类做出反应 为什么总是包含它 如果没有 no no js 情况并且可以直接处理 html
  • 导航抽屉项目图标不显示原始颜色

    我试图在导航抽屉的菜单中的项目旁边显示一个图标 但由于某种原因 该图标始终显示为灰色 而不是原始颜色 棕色 有什么方法可以防止这种情况发生 以显示图标的原始颜色 MainActivity java public class MainActi
  • 如何更改默认 EditText 的样式

    我正在创建三个EditText在我的 xml 文件中使用如下代码
  • Python CSV:读取以逗号终止的行会导致空结果

    如果这是一个愚蠢的问题 请随意骚扰我 因为我自己找不到正确的答案 我正在尝试读取一个 CSV 格式的文件 其中每行都包含数据 并且每行都以逗号终止 像这样 1 1 1 1 当我尝试使用 Python 的 CSV 函数时 我使用以下代码 wi
  • 错误:“struct List”需要模板参数

    我正在尝试为 List 类创建自己的模板作为学习练习 不过 我在模板语法方面遇到了一些问题 现在收到以下错误消息 main cpp Line 8 instantiated from here error template argument
  • 对于 >2 个类别的结果,插入符训练方法不起作用(所有准确性结果都有问题)

    嗨 我知道之前有人问过类似的问题 但还没有明确的答案 或者我尝试了他们的解决方案但没有成功 使用 GBM 时出现插入符错误 但并非没有插入符 插入符训练方法抱怨有问题 所有 RMSE 指标值均缺失 我尝试使用插入符训练方法来预测分类结果 下
  • R.java自动生成文件

    在 android 2 1 和 2 2 中 R java 文件是自动生成的 但在2 0平台中我们必须构建R java文件 任何人都知道如何从程序生成 R java 文件 使用 clean 并在 eclipse 中构建 每次构建 androi
  • 即使设置了内容大小,UIScrollView 也不会滚动

    我的 UIScrollView 是一个约 4500px 的水平视图 用户需要水平滚动才能查看内容 我已将其设置如下 void viewDidLoad super viewDidLoad sview frame CGRectMake 0 0
  • 定点的 2 次幂近似

    目前 我正在使用一个小型查找表和线性插值 它非常快且足够准确 最大误差小于 0 001 然而我想知道是否有一个更快的近似值 由于指数的整数部分可以通过位移位来提取和计算 因此近似值只需在 1 1 范围内工作 我试图找到切比雪夫多项式 但对于
  • Msys2:两个 python 安装中的 readline

    我将编辑放在最上面 因此读者不需要找到当前状态 这是与中提到的两个 python 安装相关的特定问题Msys2 维护两个 python 安装 pacman Sl grep python grep installed mingw64 ming