Рейтинг:1

Безопасно установить Python 3.9 для пользователя без полномочий root?

флаг au

(Пожалуйста, извините мой английский)

ОС моего сервера — Ubuntu 20.04. В Ubuntu 20.04, как известно, по умолчанию установлен Python 3.8, и многие системные приложения работают на Python 3.8.
Я дополнительно установил Python 3.9 на свой сервер Ubuntu. И мой сервер некоторое время работал нормально.

Однако, когда я обновил глобальные модули Python (оба версии 3.8 и 3.9) возникла проблема. Некоторые системные программы, такие как Мастер обновления программного обеспечения и Программное обеспечение и обновление, не работают. Они выдают ошибки, говоря, что не могут найти некоторые глобальные модули Python. Я попытался решить проблему, переустановив глобальные модули Python, но не смог это исправить.

Мне не нужен Python 3.9 для всей серверной системы, только для нескольких учетных записей пользователей без полномочий root. И единственный необходимый глобальный модуль точка и Венв. Другие модули могут быть установлены на базе проекта.
Итак, я попытался установить Python 3.9 как пользователь без полномочий root. Но некоторые ошибки произошли, и не удалось.

Как я могу безопасно установить Python 3.9 (или выше) для пользователей без полномочий root?

  • Здесь Безопасно установка означает установку, не мешающую системе Python 3.8 по умолчанию.
  • Неважно, установлен ли Python 3.9 (или выше) для всей системы или для конкретного пользователя.
pdh0710 avatar
флаг au
@ user535733: Кажется, что-то было неправильно сообщено. Я отредактировал свой пост, чтобы более четко выразить свои намерения.
user535733 avatar
флаг cn
Один из простых способов — использовать Python venv. Вы спрашиваете, как это сделать? Или вы просите больше вариантов?
pdh0710 avatar
флаг au
@ user535733: я уже писал в своем посте, что «единственные необходимые глобальные модули — это `pip` и `venv`», что означает, что я хочу использовать `pip` и `venv` из Python 3.9, не мешая системе Python по умолчанию. 3.8.
user535733 avatar
флаг cn
В этом случае это похоже на дубликат https://stackoverflow.com/questions/1534210/use-other-python-version-with-virtualenv, который включает в себя среди множества ответов пошаговые инструкции и ссылку на учебник на ютубе.
pdh0710 avatar
флаг au
@ user535733: Я не знаю, почему вы так одержимы использованием только `venv`. Я уже использую другую версию Python с `venv`. Моя проблема в том, что однажды ему помешала система Python 3.8. Я не думаю, что я единственный, кто испытывает эту проблему. Поэтому я разместил этот вопрос и хочу услышать мнения по этой проблеме. Не используя `venv`.
user535733 avatar
флаг cn
Пожалуйста, помните, что нас там нет. Мы не можем видеть то, что видите вы. Мы не знаем историю любой проблемы, которая у вас может возникнуть. Все, что мы знаем, это то, что вы описываете нам. Это все еще кажется мне [проблемой XY] (https://en.wikipedia.org/wiki/XY_problem). Вы не спрашиваете о настоящей проблеме, которая у вас есть; вы просите вашего любимого решения, которое кажется нам, возможно, неразумным или невыполнимым. Вот почему вы не получаете ответов, на которые надеетесь.
pdh0710 avatar
флаг au
@ user535733 Вы все еще не понимаете мою проблему?
pdh0710 avatar
флаг au
@user535733 user535733 Тогда спросите, какая информация необходима, чтобы более четко понять мою проблему.
Рейтинг:1
флаг de
ob2

Возможно, вам потребуется проверить, какая версия python3 отображается.

лс -л /usr/bin/python3

Если символическая ссылка находится на python3.9, вы можете попытаться вернуться к версии python3.8 с помощью следующей команды

компакт-диск /USR/бен/
sudo ln -sf python3.8 python3

На самом деле, это не большая проблема, так как у вас может быть несколько системных версий Python. Если вашему пользователю нужно использовать python3.9, просто используйте python3.9 <ваш скрипт>.py

флаг de
ob2
Извините, прочитав ваш вопрос, я просто понял, что не ответил на ваш вопрос. Я не уверен в установке python в качестве пользователя, не являющегося системным, я не уверен, что это возможно.
pdh0710 avatar
флаг au
На моем сервере Ubuntu `/usr/bin/python3 -> python3.8`. Я не понимаю, почему обновление глобальных модулей создает такую ​​проблему.
флаг de
ob2
Что вы подразумеваете под обновлением глобальных модулей. Вы использовали пип?
pdh0710 avatar
флаг au
Да. `pip3 установить --upgrade` и `установить pip3.9 --обновить`
флаг de
ob2
Рассмотрите возможность использования virtualenv в этом случае. Установка пакетов с помощью pip, как правило, плохая идея, если только вы не устанавливаете сервер для определенного продукта.
pdh0710 avatar
флаг au
Я использую `venv`. `virtualenv` лучше?
флаг de
ob2
это тоже самое ! по сути, venv будет хранить любой установленный вами пакет, так что это не изменит вашу систему.
Рейтинг:1
флаг sa

Ubuntu 20.04 и более поздние версии имеют пакет python3.9 в репозиториях по умолчанию. Его можно установить вместе с пакетом python3.8 по умолчанию с помощью sudo apt update && sudo apt установить python3.9 Установка пакета python3.9 из стандартных репозиториев Ubuntu упрощает управление пакетами.

Если вы используете Ubuntu 20.04, оставьте Python 3.8 в качестве версии Python 3.x по умолчанию и переключайтесь на Python 3.9 только при необходимости с помощью обновление-альтернативы. После того, как вы закончите использовать Python 3.9, вы можете переключить его обратно на версию Python 3 по умолчанию.

  • Список установленных версий Python: альтернативы обновлению --list python

  • Переключение между версиями Python: альтернативы обновления --config python

    В командной строке терминала нажмите <enter>, чтобы сохранить текущий выбор[*], или введите номер выбора:

pdh0710 avatar
флаг au
ХОРОШО. Я попробую так. Когда я установил версию Python 3.9 на свой сервер, это был первый раз, когда я установил другую версию Python, отличную от системной по умолчанию. Так что, возможно, были какие-то ошибки, о которых я не знал. Я переустановлю Python 3.9 без ошибок, как вы сказали.
karel avatar
флаг sa
Пожалуйста, удалите старую версию Python 3.9 перед установкой новой версии Python 3.9.
pdh0710 avatar
флаг au
Конечно. Я переустановлю весь сервер Ubuntu. К счастью, мой сервер Ubuntu имеет простую структуру.

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

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