Python 3.7 安装在 openSUSE Leap 42.3 上不起作用

Ted*_*ell 5 python installation pip opensuse python-3.7

在 openSUSE Leap 42.3 上从源代码构建和安装 Python 3.7.0 时,安装到 /usr/local 的默认 ./configure 会出现严重的 Python 错误。

(openSUSE Leap 42.3 Python3 包目前只有 Python 3.4.6,virtualenv 还没有发布 3.7 版本。)

$ python3
Python 3.7.0 (default, Jul  5 2018, 15:55:09) 
[GCC 4.8.5] on linux
Type "help", "copyright", "credits" or "license" for more information.
Traceback (most recent call last):
  File "/etc/pythonstart", line 7, in <module>
    import readline
ModuleNotFoundError: No module named 'readline'
>>> 
Run Code Online (Sandbox Code Playgroud)

pip 也坏了:

$ pip3
Traceback (most recent call last):
  File "/usr/local/bin/pip3", line 7, in <module>
    from pip._internal import main
  File "/usr/local/lib/python3.7/site-packages/pip/_internal/__init__.py", line 20, in <module>
    from pip._vendor.urllib3.exceptions import DependencyWarning
  File "/usr/local/lib/python3.7/site-packages/pip/_vendor/urllib3/__init__.py", line 8, in <module>
    from .connectionpool import (
  File "/usr/local/lib/python3.7/site-packages/pip/_vendor/urllib3/connectionpool.py", line 7, in <module>
    from socket import error as SocketError, timeout as SocketTimeout
  File "/usr/local/lib/python3.7/socket.py", line 49, in <module>
    import _socket
ModuleNotFoundError: No module named '_socket'
Run Code Online (Sandbox Code Playgroud)

编辑:一种可能的解决方案:

$ sudo ln -s /usr/local/lib64/python3.7/lib-dynload/ /usr/local/lib/python3.7/lib-dynload
Run Code Online (Sandbox Code Playgroud)

(其中 /usr/local/ 是默认的 PYTHONHOME)

那么问题是从https://www.python.org/安装 Python 3.7.0 是否有任何通用修复?每个人都一定有同样的问题,至少对于 openSUSE Leap 42.3。

实验的openSUSE蟒蛇3.7.0(devel的:语言:Python的:厂)打破了AppArmor的和python(ABI)的依赖,所以这个不能安装。

ral*_*hei 6

这应该可以解决您的问题:

ln -s /usr/local/lib64/python3.7/lib-dynload/ /usr/local/lib/python3.7/lib-dynload
Run Code Online (Sandbox Code Playgroud)