Сломанный Python / Пипс - PullRequest
       0

Сломанный Python / Пипс

0 голосов
/ 10 января 2020

Поэтому я использую Chromebook, а в Chromebook есть отдельный контейнер Linux, который поставляется с python 2.7. Я в классе python3, поэтому я установил python3 .5. Тогда он работал нормально, и я не помню, как я его установил.

Но недавно я хотел установить python3 .8. У меня были проблемы, и я думаю, что в итоге я установил исходный код. Он не заменил python3 .5, но заменил команду python3. У него было два различия:

Первое, что я заметил, что стрелка вверх не показывает последнюю команду в консоли python: вместо >>> lastcommand она показывает >>> ^[[A.

Второй, который я нашел позже, является более важным. Я хотел установить пакет, я забыл что, поэтому я использовал pip3 install x. Он сказал, что установлен, но когда я импортирую, он говорит, что это не так. Но когда я попытался удалить python3 .8 с помощью sudo apt-get uninstall python3, все, что он сделал, это изменил ошибку pip3 на:

Traceback (most recent call last):
  File "/usr/local/bin/pip3", line 5, in <module>
    from pip._internal.main import main
  File "/usr/local/lib/python3.5/dist-packages/pip/_internal/main.py", line 13, in <module>
    from pip._internal.cli.autocompletion import autocomplete
  File "/usr/local/lib/python3.5/dist-packages/pip/_internal/cli/autocompletion.py", line 11, in <module>
    from pip._internal.cli.main_parser import create_main_parser
  File "/usr/local/lib/python3.5/dist-packages/pip/_internal/cli/main_parser.py", line 7, in <module>
    from pip._internal.cli import cmdoptions
  File "/usr/local/lib/python3.5/dist-packages/pip/_internal/cli/cmdoptions.py", line 25, in <module>
    from pip._internal.locations import USER_CACHE_DIR, get_src_prefix
  File "/usr/local/lib/python3.5/dist-packages/pip/_internal/locations.py", line 18, in <module>
    from pip._internal.utils import appdirs
  File "/usr/local/lib/python3.5/dist-packages/pip/_internal/utils/appdirs.py", line 16, in <module>
    from pip._internal.utils.compat import WINDOWS, expanduser
  File "/usr/local/lib/python3.5/dist-packages/pip/_internal/utils/compat.py", line 17, in <module>
    from pip._vendor.urllib3.util import IS_PYOPENSSL
  File "/usr/local/lib/python3.5/dist-packages/pip/_vendor/urllib3/__init__.py", line 7, in <module>
    from pip._internal.cli import cmdoptions
  File "/usr/local/lib/python3.5/dist-packages/pip/_internal/cli/cmdoptions.py", line 25, in <module>
    from pip._internal.locations import USER_CACHE_DIR, get_src_prefix
  File "/usr/local/lib/python3.5/dist-packages/pip/_internal/locations.py", line 18, in <module>
    from pip._internal.utils import appdirs
  File "/usr/local/lib/python3.5/dist-packages/pip/_internal/utils/appdirs.py", line 16, in <module>
    from pip._internal.utils.compat import WINDOWS, expanduser
  File "/usr/local/lib/python3.5/dist-packages/pip/_internal/utils/compat.py", line 17, in <module>
    from pip._vendor.urllib3.util import IS_PYOPENSSL
  File "/usr/local/lib/python3.5/dist-packages/pip/_vendor/urllib3/__init__.py", line 7, in <module>
    from .connectionpool import HTTPConnectionPool, HTTPSConnectionPool, connection_from_url
  File "/usr/local/lib/python3.5/dist-packages/pip/_vendor/urllib3/connectionpool.py", line 11, in <module>
    from .exceptions import (
  File "/usr/local/lib/python3.5/dist-packages/pip/_vendor/urllib3/exceptions.py", line 2, in <module>
    from .packages.six.moves.http_client import IncompleteRead as httplib_IncompleteRead
  File "/usr/local/lib/python3.5/dist-packages/pip/_vendor/urllib3/packages/six.py", line 199, in load_module
    mod = mod._resolve()
  File "/usr/local/lib/python3.5/dist-packages/pip/_vendor/urllib3/packages/six.py", line 113, in _resolve
    return _import_module(self.mod)
  File "/usr/local/lib/python3.5/dist-packages/pip/_vendor/urllib3/packages/six.py", line 82, in _import_module
    __import__(name)
ImportError: No module named 'http.client'; 'http' is not a package

Я хотел бы удалить python3 .5, полностью сбросить python3 .8, чтобы он работал, и исправьте пипс Спасибо за вашу помощь и ответы!


Редактировать: Я решил просто сбросить свой контейнер, но теперь мне понадобится помощь по правильному удалению python3 .5 и установка python3 .8. Еще раз спасибо!

1 Ответ

0 голосов
/ 10 января 2020

во-первых, вы уверены, что заменили python3 на 3,8? выглядит как неработающий 3.5 от трассировки .. может быть в состоянии просто запустить /usr/bin/python3.8 /usr/bin/pip3

не уверен насчет Chromebook и контейнера, но так как вы используете apt-get, я предполагаю, что это похоже на Debian .. Там будет пакет python3, указывающий на самую последнюю версию этой ветви и отдельные основные версии, такие как python3 .5, python3 .7 ...

Должен иметь возможность удалить python3 .5: apt-get remove python3.5 И переустановите: apt-get reinstall python3.8

Поскольку стрелки не работают, вероятно, в новом интерпретаторе отсутствует libreadline. Чтобы быть уверенным, что вы захотите проверить, с чем он связан, я не уверен в этой среде (в основном в моем распоряжении Debian и RHEL):

$ ldd /usr/lib/python3.7/lib-dynload/readline*
        linux-vdso.so.1 (0x00007ffc37ded000)
        libreadline.so.7 => /lib/x86_64-linux-gnu/libreadline.so.7 (0x00007f6007bb0000)
        libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f6007b8f000)
        libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f60079ce000)
        libtinfo.so.6 => /lib/x86_64-linux-gnu/libtinfo.so.6 (0x00007f60079a0000)
        /lib64/ld-linux-x86-64.so.2 (0x00007f6007e12000)
$ dpkg -S /lib/x86_64-linux-gnu/libreadline.so.7
libreadline7:amd64: /lib/x86_64-linux-gnu/libreadline.so.7

Так что, возможно, это также libreadline7 для вас ..

edit: немного погуглил, похоже, что это контейнер Debian 9 или 10, так что, надеюсь, такой же, как я использую Debian 10

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...