Рейтинг:0

Старые проблемы с установкой python, обновите python3-distils

флаг cn

У меня была эта проблема много раз, и я не мог решить. Я только что вручную скомпилировал и установил python 3.10 на ubuntu 20.04, по какой-то причине думаю, что последняя версия, вероятно, будет лучшей, однако с python это спорно!

Теперь, когда я пытаюсь выполнить некоторые обновления, я получаю такие распространенные ошибки, как эти, предполагает, что система не находит «py_compile.py»?

Настройка python3-distutils (3.8.10-0ubuntu1~20.04) ...
/usr/bin/python3.9: не удается открыть файл '/usr/lib/python3.9/py_compile.py': [Errno 2] Нет такого файла или каталога

Однако, когда я ищу, у меня есть много копий этого файла в моей системе, включая

/usr/local/lib/python3.10/py_compile.py

Где должен быть этот файл, чтобы система его нашла? Нужно ли указывать другой каталог установки для Ubuntu, в отличие от большинства других систем Linux, при настройке перед этапами компиляции make, make install?

Я даже не буду развлекаться, используя чистку или что-то в этом роде, ранее удаляя большие части всей системы, кажется, все зависит от python! Спасибо. Дж

флаг us
`/usr/bin/python3.9: не удается открыть файл` -- Ubuntu 20.04 имеет python 3.8. Как ты там 3.9 получил? Кроме того, вы заменили python по умолчанию (3.8) на более позднюю версию?
Jim Maas avatar
флаг cn
Я загрузил 3.9.tar.gz, разархивировал его, настроил, сделал, сделал установку, но каталог установки по умолчанию кажется неверным для ubuntu? Спасибо
флаг us
Это небезопасный способ установки Python в Ubuntu (если вы не знаете, что делаете). Смотрите мой ответ.
Рейтинг:2
флаг sa

py_compile.py предоставляется libpython3.8-minimal в Ubuntu 20.04. Откройте терминал и введите:

sudo apt установить python3-все libpython3.8-минимальный
sudo update-alternatives --config python3 # выберите python3.8 для автоматического режима
sudo apt установить python3-distutils
судо подходящее обновление
судо подходящее обновление

В дополнение к приведенному выше коду у вас есть неработающие символические ссылки из версий Python, которые вы удалили, некоторые из которых изначально были установлены вручную. Эти неработающие символические ссылки на удаленные версии Python 3.X приводят к неправильному поведению apt (для которого требуется python3). Вы можете найти эти неработающие символические ссылки, следуя инструкциям в Как я могу найти битые симлинки.

Если вы обнаружите какие-либо подозрительно выглядящие символические ссылки, вы можете отсканировать их с помощью символические ссылки упаковка ( sudo apt установить символические ссылки ) и найдите любой болтается ссылки. болтается ссылки — это те, для которых цель ссылки в настоящее время не существует, поэтому оборванные ссылки можно безопасно удалить. Если вы не уверены, можно ли безопасно удалить символическую ссылку, вы можете переименовать ссылку, добавив расширение .bak в конце ее имени, чтобы вы могли быстро восстановить ссылку, удалив расширение .bak из ее имени.

Jim Maas avatar
флаг cn
Спасибо, Карел, так что это вернется к Python 3.8 ... Правильно? Я думаю, что начинаю понимать, что невозможно использовать python 3.9 или 3.10 в Ubuntu 20.04, слишком много было построено с использованием 3.8, а установка новой версии ломает систему? Это вообще правильно?
karel avatar
флаг sa
Это верно. Возврат к python3.8 может решить проблему управления пакетами, а затем вы можете выбрать python3.9 или python3.10 со статусом «ручной режим», запустив «sudo update-alternatives --config python3» и нажав чтобы сохранить текущий выбор[*], или введите номер выбора.
Jim Maas avatar
флаг cn
Первая строка работает нормально, установил обе, но вторая строка не находит 3.8, получите это «sudo update-alternatives --config python3 В группе ссылок python3 есть только одна альтернатива (предоставляющая /usr/bin/python3.9): /usr/local/bin/python3.9 Нечего настраивать». Я могу перейти в каталоги, в которых я скомпилировал 3.9 и 3.10, и выполнить удаление, но боюсь, что это сломает всю мою систему? Как я могу получить альтернативы обновления, чтобы найти 3.8? Обнаружено, если я обновлю -alternatives --config python (т.е. не python3).Спасибо. Дж.
karel avatar
флаг sa
Пропустите пока вторую строку. Возможно, перезагрузка позволит вам выбрать 3.8. Продолжайте со следующими тремя командами и проверьте, решает ли это проблему в вашем вопросе.
Jim Maas avatar
флаг cn
Я сделал что-то не так! "$ питон Python 3.10.0 (по умолчанию, 24 ноября 2021 г., 07:40:12) [GCC 9.3.0] в Linux», а «$ какой питон /usr/bin/python" и "$ /usr/bin/python Python 3.8.10 (по умолчанию, 28 сентября 2021 г., 16:10:42)». У меня должны быть проблемы с указанием пути? Указано слишком много путей?
karel avatar
флаг sa
Вы помните, как устанавливали Python 3.10.0? Он был установлен из ppa:deadsnakes/ppa? Если это так, если вы можете удалить ppa:deadsnakes/ppa и запустить `sudo apt update`, вы можете удалить Python 3.10.0.
Jim Maas avatar
флаг cn
Довольно смело (по глупости!) скачал tar.gz с python.org, разархивировал, настроил с настройками по умолчанию, make, sudo make install. Я только что зашел в этот каталог, и для sudo make uninstall нет цели!
karel avatar
флаг sa
Давайте [продолжим это обсуждение в чате](https://chat.stackexchange.com/rooms/131729/discussion-between-karel-and-jim-maas).
Рейтинг:1
флаг us

Самый безопасный способ установки питон3.10 в Ubuntu 20.04 — использовать мертвые змеи PPA.

sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt-получить обновление
sudo apt установить python3.10

А затем назовите его с помощью питон3.10. За питон3.9, установить с sudo apt установить python3.9.


Вы не описали все изменения, которые вы внесли в свою систему (у вас, кажется, python3.9 и python3.10).

Если вы не удалили версию Python по умолчанию (3.8), вы можете сбросить версию по умолчанию с помощью альтернативы обновления --config python и выберите python3.8.

Если вы уже заменили версию по умолчанию на python3.9, вам придется переустановить Ubuntu. Системные компоненты в Ubuntu 20.04 предназначены для работы с python3.8.

Jim Maas avatar
флаг cn
Спасибо за это, так что вы предполагаете, что нет возможности установить новые версии после 3.8 на Ubuntu 20.04 и не сломать всю систему? Я полагаю, когда вы говорите «переустановить Ubuntu», вы имеете в виду более новую версию, например 21.10?
флаг us
Конечно, вы можете использовать python3.9. Вы просто выполняете его с помощью `python3.9`. Но назначьте версию 3.8 по умолчанию для python. Вы можете переустановить любую версию Ubuntu, которую захотите, но не следует связываться с версией Python по умолчанию (конечно, вы можете установить дополнительные версии, однако PPA-репозиторий deadsnakes поддерживает только LTS-версии Ubuntu).

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.