Puncte:0

Schimbați versiunea Python numai într-un singur mediu virtual

drapel th

Terminalul Gnome va rula doar când python3.6 este folosit. Așa că am creat un mediu și am instalat python3.9 ca astfel:

#!/usr/bin/env bash

sudo apt install python3-venv
python3 -m venv test_env
sursă test_env/bin/activate

sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt-get update
lista apt | grep python3.9
sudo apt-get install 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
python3 -V

Cu toate acestea, acest lucru face ca întregul sistem să treacă la python3.9 și împiedică funcționarea terminalului. Cum pot preveni acest lucru?

Acum, alergând sursa ~/.bashrc permite terminalului non-venv să continue să funcționeze. Și piton -V raportează versiunea corectă a 3.6. Dar dacă închid fereastra nu o pot redeschide. Trebuie să folosesc un terminal în IDE-ul meu pentru a reselege versiunea mai veche de python. Alergare:

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

Arată că de fapt, versiunea 3.9 este selectat. Chiar dacă piton -V actuallt rapoarte care rulează python3.6:

# Python 3.6.9


# Starea priorității căii de selecție
# --------------------------------------------- -----------
# 0 /usr/bin/python3.9 2 modul automat
# 1 /usr/bin/python3.10 2 modul manual
# 2 /usr/bin/python3.6 1 mod manual
#* 3 /usr/bin/python3.9 2 modul manual
vanadium avatar
drapel cn
Tu ai conceput această procedură singur? Adăugarea unui PPA și apoi instalarea python, evident, va actualiza versiunea de sistem a python și vă va rupe sistemul.
Solebay Sharp avatar
drapel th
Nu, nu am făcut-o și, ca atare, nu eram conștient de ceea ce a făcut `PPA`. Am crezut că problema a fost modul în care mi-am configurat venv. Pot elimina doar `PPA`?
vanadium avatar
drapel cn
Da, folosind ppa-purge puteți elimina PPA și anulați modificările. Din păcate, nu pot ajuta în mod special la configurarea diferitelor medii Python.
drapel us
Utilizarea PPA Deadsnakes **nu** actualizează versiunea de sistem a python. Ambele versiuni există simultan.
Puncte:0
drapel th

După cum a subliniat Vanadium, folosind PPA actualizează versiunea de sistem a python. Deci chiar și de la venv făceam o schimbare globală.

Soluția este destul de evidentă; Python3 nu rulează Python3, rulează orice versiune de python3 este instalată pe sistem, așa că în cazul meu...

python3 -m venv test_env

Am configurat un python3.6 venv. Alergare...

python3.9 -m venv test_env

Se pare că a configurat corect un python3.9 venv. Pentru a pune la punct ideea, pentru a rula codul Python în ATOM IDE folosind Hydrogen, în venv-ul meu 3.9 a trebuit să rulez...

python3.9 -m ipykernel install --user --name=atom_venv_py

Deci, este doar un caz de specificare a versiunii de python pe care doriți să o utilizați în fiecare caz în care se abate de la versiunea sys (nucleul IPython este backend-ul de execuție Python pentru Jupyter, care permite rularea Hyrdogen).

drapel us
Nu. Utilizarea PPA Deadsnakes pentru a instala python3.9 **nu** va înlocui versiunea de sistem a python.
Solebay Sharp avatar
drapel th
Deci ele există simultan. Ce dictează ce versiune de python este folosită?
drapel us
Când rulați `python3`, obțineți python implicit al sistemului (care este 3.6 în Ubuntu 18.04). Când rulați `python3.9`, obțineți python3.9. Și, evident, când rulați `python3.6`, obțineți din nou python3.6. Nu l-am încercat, dar așa cum ați scris în răspunsul dvs., `python3.9 -m venv test_env` ar trebui să dea rezultatele dorite.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.