ModuleNotFoundError: No module named 'readline'

  1. 从官网 Download Python | Python.org 下载好 python-3.10.4 一路装好, 结果如此

    2 使用 virtualenv , 结果依然如此
  2. google 了各种方法,不起作用,包括 configure openssl, ln -s …/lib-dynload

image

额,其实 openSUSE 官方仓库是有 python3.10 的

sudo zypper in python310

你可以试试官方提供的 python,看有没有相同的问题

1赞

没看懂,不是找不到 readline 吗?pip install readline

1赞

正因为是找不到 readline,所以才不能 pip install。readline 是 Python 自带的库,并且会链接到系统库上。

所以楼主后边的尝试是完全不会有用的。我也完全不懂他说的「一路装好」是怎么装的。我点过去看了一下,Python.org 并没有提供 Linux 平台上的二进制,大概是自己编译安装的吧……不过 /etc/pythonstart 这个文件就猜不出来是怎么回事了。

其实直接 zypper in 就好了啊……

1赞

我尝试了你的方法,结果仍然出错。已经升级到 15.4

自带的 2.7, 3.6 没有任何问题

Defaulting to user installation because normal site-packages is not writeable
Collecting readline
Using cached readline-6.2.4.1.tar.gz (2.3 MB)
Preparing metadata (setup.py) … error
error: subprocess-exited-with-error

× python setup.py egg_info did not run successfully.
│ exit code: 1
╰─> [1 lines of output]
ERROR: Can not execute setup.py since setuptools is not available in the build environment.
[end of output]

note: This error originates from a subprocess, and is likely not a problem with pip.
error: metadata-generation-failed

× Encountered error while generating package metadata.
╰─> See above for output.

note: This is an issue with the package mentioned above, not pip.
hint: See above for details.
WARNING: You are using pip version 22.0.4; however, version 22.1.2 is available.
You should consider upgrading via the ‘/usr/local/bin/python3.10 -m pip install --upgrade pip’ command.

目前看来就是 openSUSE 自己对 3.10 支持不好,如果说是 python3.10 自己的问题,那怎么我在 windows10 和 MacOS 上面都能用呢?。用你的办法我 deinstall 3.10,装了 3.9,不出问题。

我去 search.opensuse.org 翻了一下,python 3.10 好像只有 Tumbleweed 有可用的官方包(Leap 看样子得去找 OBS 源了):

风滚草默认内置的 python 版本是 3.8(openSUSE 官方仓库其实也有 python39 和 python311,但是 Leap 有没有就不知道了):

按理说,像 python 这类重要的,被纳入官方仓库的基础工具包不应该出现问题的。python 使用者很多,如果 openSUSE 维护的 python 有问题,影响面也会很广泛。

或许你需要补充更多一些信息,来帮助浏览这个帖子的人更深入地了解你的机器究竟发生了什么事情。

1赞



我已经按照这个方法装好了.问题是你自己运行一下 python3.10
image

image

建议使用 anaconda 来安装 python 二进制。