Установка Python 3.7 не работает в openSUSE Leap 42.3

При сборке и установке Python 3.7.0 из исходного кода в openSUSE Leap 42.3 возникают серьезные ошибки python с файлом ./configure по умолчанию, который устанавливается в / usr / local.

(Пакет 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'
>>> 

пип тоже сломан:

$ 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 по умолчанию)

Тогда возникает вопрос: есть ли какое-либо общее исправление для установки Python 3.7.0 с https://www.python.org/? У всех должна быть одна и та же проблема, по крайней мере, для openSUSE Leap 42.3.

экспериментальный openSUSE python 3.7.0 (devel: languages: python: Factory) устраняет зависимости для apparmor и python (abi), поэтому его нельзя установить.


person Ted Kandell    schedule 06.07.2018    source источник
comment
python 3.7 помечен openSuse как экспериментальный. Если вы все еще хотите его использовать, вам лучше установить его с сайта Suse.   -  person LMC    schedule 06.07.2018
comment
Да, но в python 3.7 есть функции, такие как breakpoint (), которые недоступны в пакете python openSUSE 3.4.6. python 3.7.0 теперь является последней версией выпуска. В любом случае пакеты дистрибутива обычно сильно отстают, поэтому многие люди могут захотеть собрать и установить Python из исходников.   -  person Ted Kandell    schedule 06.07.2018
comment
Я говорю о том, что вы можете установить python 3.7 с сайта opensuse, щелкнув экспериментальные пакеты .   -  person LMC    schedule 06.07.2018
comment
python3-apparmor-2.10.3-16.1.x86_64 требует python3 = 3.4, поэтому я думаю, мне придется игнорировать эту зависимость.   -  person Ted Kandell    schedule 06.07.2018
comment
Кроме того, для python3.3.7.0-240-1.x86_64 требуется python (abi) = 3.7, но это требование не может быть выполнено, поэтому зависимости для экспериментального пакета python 3.7.0 нарушены.   -  person Ted Kandell    schedule 06.07.2018
comment
По моему опыту, добавление символической ссылки $ sudo ln -s /usr/local/lib64/python3.7/lib-dynload/ /usr/local/lib/python3.7/lib-dynload всегда требуется при создании Python с make altinstall на OpenSuse.   -  person snakecharmerb    schedule 07.07.2018
comment
Спасибо, @snakecharmerb! Создание мягкой ссылки, указывающей с [...]/lib/python3.7/lib-dynload на [...]/lib64/python3.7/lib-dynload, действительно помогло в моей системе Leap 15.0. Отличный совет!   -  person pklaus    schedule 02.10.2018


Ответы (1)


Это должно решить вашу проблему:

ln -s /usr/local/lib64/python3.7/lib-dynload/ /usr/local/lib/python3.7/lib-dynload
person ralhei    schedule 16.08.2019
comment
Спасибо @ralhei. Это меня спасло. - person user10340258; 30.03.2021