python - 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) 的依赖关系,因此无法安装。
解决方案
这应该可以解决您的问题:
ln -s /usr/local/lib64/python3.7/lib-dynload/ /usr/local/lib/python3.7/lib-dynload
推荐阅读
- optimization - Big Query 如何使用分类(重复)字符串值存储数百万行的列?
- python-3.x - 从子菜单添加多个操作
- android - RecyclerView SpanSizeLookup - 大型数据集的可怕性能
- angular - 是否值得为函数参数定义`undefined and null`?
- webpack - 多个输出需要 Output.filename
- migration - 在 Liquibase 中删除带有 loadUpdateData 变更集的表
- javascript - Google Maps 设置方向的方向Renderer 对象未绘制路线
- python - 数据库已更新,但 api 未在 Flask 中显示任何内容
- javascript - 离子服务工作者为 GET 发送 OPTIONS
- java - 在一个应用程序中使用 rest 和 websockets