首页 > 解决方案 > Python 3.7 安装无法在 openSUSE Leap 42.3 上运行

问题描述

在 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'
>>> 

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'

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

$ sudo ln -s /usr/local/lib64/python3.7/lib-dynload/ /usr/local/lib/python3.7/lib-dynload

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

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

实验性的openSUSE python 3.7.0 (devel:languages:python:Factory)打破了 apparmor 和 python(abi) 的依赖关系,因此无法安装。

标签: pythoninstallationpipopensusepython-3.7

解决方案


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

ln -s /usr/local/lib64/python3.7/lib-dynload/ /usr/local/lib/python3.7/lib-dynload

推荐阅读