Puncte:1

Instalați în siguranță Python 3.9 pentru utilizatori non-root?

drapel au

(Vă rog să-mi scuzați engleza)

Sistemul de operare al serverului meu este Ubuntu 20.04. În Ubuntu 20.04, după cum știm, Python 3.8 este instalat implicit și multe aplicații de sistem rulează pe Python 3.8.
Am instalat suplimentar Python 3.9 pe serverul meu Ubuntu. Și serverul meu a funcționat bine pentru o vreme.

In orice caz, când am actualizat modulele globale din Python (3.8 și 3.9 ambele), problema a apărut. Unele programe de sistem, cum ar fi Actualizator de soft și Software și actualizare, nu funcționează. Ei dau erori spunând că nu pot găsi unele module globale Python. Am încercat să rezolv problema reinstalând modulele globale Python, dar nu am reușit să rezolv.

Nu am nevoie de Python 3.9 pentru întregul sistem de server, doar pentru câteva conturi de utilizator non-root. Și singurul modul global necesar sunt pip și venv. Alte module pot fi instalate pe baza proiectului.
Deci, am încercat să instalez Python 3.9 ca utilizator non-root. Dar au apărut unele erori și au eșuat.

Cum pot instala în siguranță Python 3.9 (sau mai sus) pentru utilizatorii non-root?

  • Aici sigur instalare înseamnă că instalarea nu interferează cu sistemul implicit Python 3.8.
  • Nu contează dacă Python 3.9 (sau mai sus) este instalat la nivelul întregului sistem sau pentru un anumit utilizator.
pdh0710 avatar
drapel au
@user535733 : Se pare că ceva a fost comunicat greșit. Mi-am editat postarea pentru a-mi exprima mai clar intențiile.
user535733 avatar
drapel cn
O modalitate simplă este să utilizați un Python venv. Te întrebi cum să faci asta? Sau ceri mai multe variante?
pdh0710 avatar
drapel au
@user535733 : Am scris deja în postarea mea că „Și singurul modul global necesar sunt `pip` și `venv`”, ceea ce înseamnă că vreau să folosesc `pip` și `venv` din Python 3.9 fără a interfera cu Python-ul implicit al sistemului 3.8.
user535733 avatar
drapel cn
În acest caz, acesta pare o copie a https://stackoverflow.com/questions/1534210/use-different-python-version-with-virtualenv, care include printre numeroasele răspunsuri instrucțiuni pas cu pas și un link către un tutorial YouTube.
pdh0710 avatar
drapel au
@user535733 : Nu știu de ce ești atât de obsedat să folosești doar `venv`. Folosesc deja o versiune Python diferită cu `venv`. Problema mea este că într-o zi a interferat cu sistemul Python 3.8. Nu cred că sunt singurul care se confruntă cu această problemă. Așa că am postat această întrebare și vreau să aud păreri despre această problemă. Nu se utilizează `venv`.
user535733 avatar
drapel cn
Vă rugăm să rețineți că nu suntem acolo. Nu putem vedea ceea ce vezi tu. Nu știm istoricul oricărei probleme pe care le-ați putea avea. Tot ce știm este ceea ce ne descrii. Aceasta încă mi se pare o [Problemă XY](https://en.wikipedia.org/wiki/XY_problem). Nu întrebi despre problema reală pe care o ai; cereți soluția dvs. favorizată care poate ni se pare neînțeleaptă sau imposibil de realizat. De aceea nu primești răspunsuri pe care le speri.
pdh0710 avatar
drapel au
@user535733 Încă nu înțelegi problema mea?
pdh0710 avatar
drapel au
@user535733 Apoi întrebați ce informații sunt necesare pentru a înțelege mai clar problema mea.
Puncte:1
drapel de
ob2

Ar putea fi necesar să verificați ce versiune python3 este mapată.

ls -l /usr/bin/python3

Dacă legătura simbolică este pe python3.9, puteți încerca să reveniți la versiunea python3.8 cu următoarea comandă

cd /usr/bin/
sudo ln -sf python3.8 python3

De fapt, nu este o problemă mare, deoarece puteți avea mai multe versiuni de sistem Python. Dacă utilizatorul dvs. trebuie să utilizeze python3.9, utilizați python3.9 <scriptul dvs.>.py

drapel de
ob2
Îmi pare rău, după ce ți-am citit întrebarea, mi-am dat seama că nu am răspuns la întrebarea ta. Nu sunt sigur despre instalarea python ca utilizator non-sistem, nu sunt sigur că este fezabil.
pdh0710 avatar
drapel au
Pe serverul meu Ubuntu, `/usr/bin/python3 -> python3.8` . Nu înțeleg de ce actualizarea modulelor globale creează o astfel de problemă.
drapel de
ob2
Ce vrei să spui prin actualizarea modulelor globale. Ai folosit pip?
pdh0710 avatar
drapel au
Da. `pip3 install --upgrade` și `pip3.9 install --upgrade`
drapel de
ob2
Luați în considerare utilizarea virtualenv în acest caz. Instalarea pachetelor cu pip este, în general, o idee proastă, cu excepția cazului în care instalați un server pentru un anumit produs.
pdh0710 avatar
drapel au
Eu folosesc `venv`. `virtualenv` este mai bine?
drapel de
ob2
este la fel ! practic, venv va stoca orice pachet pe care îl instalați, astfel încât acest lucru nu vă va altera sistemul.
Puncte:1
drapel sa

Ubuntu 20.04 și versiunile ulterioare au pachetul python3.9 în depozitele implicite. Poate fi instalat alături de pachetul implicit python3.8 cu sudo apt update && sudo apt install python3.9 Instalarea pachetului python3.9 din depozitele implicite Ubuntu simplifică gestionarea pachetelor.

Dacă utilizați Ubuntu 20.04, păstrați Python 3.8 ca versiune implicită Python 3.x și treceți la Python 3.9 numai când este necesar folosind actualizare-alternative. După ce ați terminat de utilizat Python 3.9, îl puteți comuta înapoi la versiunea implicită Python 3.

  • Listați versiunile instalate de Python: update-alternatives --list python

  • Comutați între versiunile Python: update-alternatives --config python

    Din linia de comandă a terminalului Apăsați <enter> pentru a păstra alegerea curentă[*] sau tastați numărul de selecție:

pdh0710 avatar
drapel au
BINE. Voi încerca așa. Când am instalat versiunea Python 3.9 pe serverul meu, a fost prima dată când am instalat o versiune diferită de Python, alta decât cea implicită de sistem. Deci s-ar putea să fi fost niște greșeli de care nu eram conștient. Voi reinstala Python 3.9 fără greșeli, așa cum ați spus.
karel avatar
drapel sa
Vă rugăm să dezinstalați vechea versiune de Python 3.9 înainte de a instala noua versiune de Python 3.9.
pdh0710 avatar
drapel au
Desigur. Voi reinstala întregul server Ubuntu. Din fericire, serverul meu Ubuntu are o structură simplă.

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.