Я недавно начал использовать простую ОС. Он основан на Ubuntu. Во время установки python 3.6.
я установил python 3.8 вручную, установив следующие пакеты: python3.8
, python3.8-dev
, python3.8-minimal
, python3.8-venv
. Я также обновил ссылку на двоичный файл python:
sudo ln -sf /usr/bin/python3.8 /usr/bin/python3
После этого пара вещей перестала работать. Например, когда я пытался выполнить несуществующую команду, он не печатал сообщение об ошибке, что не может найти команду, но отображал трассировку стека python. Это я решил с помощью:
cd /usr/lib/python3/dist-packages
sudo ln -s apt_pkg.cpython-36m-x86_64-linux-gnu.so apt_pkg.so
sudo ln -s apt_inst.cpython-36m-x86_64-linux-gnu.so apt_inst.so
Как видите, ошибка python была в том, что не удалось найти скомпилированные двоичные файлы для модуля apt.
Таким образом, эта проблема была решена , но есть пара похожих, и ни один из них не может быть решен таким образом, поскольку двоичный файл модуля не совместим с python 3.8.
Можно ли полностью удалить python 3.6 и переопределить его с 3.8, чтобы двоичные файлы модуля также обновлялись? Или python 3,8 и 3,6 могут сосуществовать? Я бы согласился со ссылкой /usr/bin/python3
, указывающей на python 3.6, и я бы вручную выполнил /usr/bin/python3.8
или создал для него другой псевдоним или ссылку. Однако, когда я распечатываю sys.path
с /usr/bin/python3.8
, я получаю это:
/usr/lib/python38.zip
/usr/lib/python3.8
/usr/lib/python3.8/lib-dynload
/home/{username}/.local/lib/python3.8/site-packages
/usr/local/lib/python3.8/dist-packages
/usr/lib/python3/dist-packages
Проблема с последним. Вот где находятся модули с файлами, совместимыми с 3.6. Можно ли каким-то образом заставить python 3.8 полностью игнорировать последний путь поиска модуля (без указания в моих скриптах sys.path.remove) ?