Рейтинг:0

Изменить версию Python только в одной виртуальной среде

флаг th

Терминал Gnome будет работать только тогда, когда питон3.6 используется. Поэтому я создал среду и установил питон3.9 вот так:

#!/usr/bin/env bash

sudo apt установить python3-venv
python3 -m venv test_env
источник test_env/bin/активировать

sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt-получить обновление
подходящий список | grep python3.9
sudo apt-get установить python3.9
sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.6 1
sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.9 2
sudo update-alternatives --config python3
питон3 -V

Однако это приводит к тому, что вся система переключается на питон3.9 и мешает терминалу работать. Как я могу предотвратить это?

Теперь бег источник ~/.bashrc позволяет терминалу, отличному от venv, продолжать работу. И питон -V сообщает правильную версию 3.6. Но если я закрою окно, я не смогу открыть его снова. Мне нужно использовать терминал в моей среде IDE, чтобы повторно выбрать более старую версию Python. Бег:

sudo update-alternatives --install /usr/bin/python3 python3

Показывает, что на самом деле версия 3.9 выбран. Даже не смотря на питон -V фактические отчеты выполняются питон3.6:

# Питон 3.6.9


# Статус приоритета пути выбора
# --------------------------------------------- -----------
# 0 /usr/bin/python3.9 2 автоматический режим
# 1 /usr/bin/python3.10 2 ручной режим
# 2 /usr/bin/python3.6 1 ручной режим
#* 3 /usr/bin/python3.9 2 ручной режим
vanadium avatar
флаг cn
Вы сами разработали эту процедуру? Добавление PPA, а затем установка python, очевидно, обновит системную версию python и сломает вашу систему.
Solebay Sharp avatar
флаг th
Нет, не знал, и поэтому я не знал о том, что сделал `PPA`. Я думал, что проблема в том, как я настроил свой venv. Могу ли я просто удалить `PPA`?
vanadium avatar
флаг cn
Да, с помощью ppa-purge вы можете удалить PPA и отменить изменения. К сожалению, я не могу помочь конкретно с настройкой различных окружений Python.
флаг us
Использование Deadsnakes PPA **не** обновляет системную версию Python. Обе версии существуют одновременно.
Рейтинг:0
флаг th

Как указано Ванадием, использование ППА обновляет системную версию python. Так что даже с venv я делал глобальные изменения.

Решение вполне очевидно; Python3 не запускает Python3, он запускает любую версию python3, установленную в системе, поэтому в моем случае...

python3 -m venv test_env

Настраивал венв python3.6. Бег...

python3.9 -m venv test_env

Кажется, правильно настроил venv python3.9. Чтобы понять суть, чтобы запустить код Python в ATOM IDE с помощью Hydrogen, в моей версии 3.9 мне пришлось запустить...

python3.9 -m ipykernel установить --user --name=atom_venv_py

Так что это просто случай указания, какую версию python вы хотите использовать в каждом случае, когда она отличается от версии sys (ядро IPython — это серверная часть выполнения Python для Jupyter, которая позволяет запускать Hyrdogen).

флаг us
Нет. Использование Deadsnakes PPA для установки python3.9 **не** заменит системную версию python.
Solebay Sharp avatar
флаг th
Итак, они существуют одновременно. Что определяет, какая версия Python используется?
флаг us
Когда вы запускаете `python3`, вы получаете системный python по умолчанию (3.6 в Ubuntu 18.04). Когда вы запускаете `python3.9`, вы получаете python3.9. И очевидно, что когда вы запускаете `python3.6`, вы снова получаете python3.6. Я не пробовал, но, как вы написали в своем ответе, `python3.9 -m venv test_env` должен дать ожидаемые результаты.

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

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