Python: Diferență între versiuni

De la YO3ITI
Sari la navigare Sari la căutare
Linia 9: Linia 9:
O problemă de care m-am lovit la utilizarea Visual Studio Code este absența bibliotecilor în mediul de lucru selectat. Mesajul de eroare este:
O problemă de care m-am lovit la utilizarea Visual Studio Code este absența bibliotecilor în mediul de lucru selectat. Mesajul de eroare este:
<syntaxhighlight lang="console">
<syntaxhighlight lang="console">
ModuleNotFoundError: No module named 'mike'
user@system % ModuleNotFoundError: No module named 'mike'
</syntaxhighlight>
</syntaxhighlight>


Linia 17: Linia 17:
Crearea unui mediu virtual de dezvoltare; în terminalul VSC se scrie:
Crearea unui mediu virtual de dezvoltare; în terminalul VSC se scrie:
<syntaxhighlight lang="console">
<syntaxhighlight lang="console">
python3.11 -m venv teste
user@system % python3.11 -m venv teste
</syntaxhighlight>
</syntaxhighlight>
Unde "test" este numele mediului virtual de dezvoltare
Unde "test" este numele mediului virtual de dezvoltare
Linia 23: Linia 23:
Apoi se activează mediul virtual de dezvoltare
Apoi se activează mediul virtual de dezvoltare
<syntaxhighlight lang="console">
<syntaxhighlight lang="console">
source teste/bin/activate
user@system % source teste/bin/activate
</syntaxhighlight>
</syntaxhighlight>


Linia 30: Linia 30:
De aici, instalarea librăriilor se face extrem de simplu cu pip. De exemplu:
De aici, instalarea librăriilor se face extrem de simplu cu pip. De exemplu:
<syntaxhighlight lang="console">
<syntaxhighlight lang="console">
pip3 install numpy
(teste) user@system % pip3 install numpy
</syntaxhighlight>
</syntaxhighlight>


Linia 37: Linia 37:
Este indicat să se actualizeze pip cu comanda:
Este indicat să se actualizeze pip cu comanda:
<syntaxhighlight lang="console">
<syntaxhighlight lang="console">
pip3 install --upgrade pip
(teste) user@system % pip3 install --upgrade pip
</syntaxhighlight>
</syntaxhighlight>


Pentru părăsirea mediului virtual se scrie:
Pentru părăsirea mediului virtual se scrie:
<syntaxhighlight lang="console">
<syntaxhighlight lang="console">
deactivate
(teste) user@system % deactivate
</syntaxhighlight>
</syntaxhighlight>



Versiunea de la data 10 mai 2023 21:22

Încurajez orice radioamator să încerce să facă măcar o aplicație în Python, cât de simplă. Este un limbaj de nivel înalt, extrem de ușor de învățat și extrem de prietenos. Ceea ce îl face foarte atractiv este imensa și directa sa aplicabilitate în activitățile de zi cu zi: este foarte ușor să scrii rapid o aplicație relativ complexă, care să-ți satisfacă imediat nevoia de automatizare.

Python este un limbaj dinamic,[1] interpretat[2], creat pe la începutul anilor '90. Nu este foarte rapid dar e de o eficiență ieșită din comun: la un număr egal de linii de cod faci mult mai multe în Python decât în alte limbaje de programare. Este un limbaj prietenos, dotat cu un sistem de garbage collection[3] excelent astfel că nu solicită programatorul obligându-l la interacțiunea directă cu memoria (nu necesită gestiunea manuală a memoriei). Este procedural, funcțional, orientat obiect, multi-platformă și foarte popular[4].

Unul dintre cele mai importante atuuri este comunitatea programatorilor Python, un grup de oameni extrem de diverși și foarte primitori. Calitatea comunității programatorilor este esențială pentru succesul efortului de învățare și adoptare a unui limbaj de programare. O consecință este numărul uriaș de pachete și module care pot fi descărcate și utilizate gratis. Toate aceste trăsături îl fac ideal pentru a fi utilizat în proiecte de radioamatorism. Alături de R, Python este utilizat extrem de mult în cercetare și în alte proiecte științifice[5]. Există chiar o comparație intereseantă între Python și Matlab. ;)

Mai jos e o listă de mici proiecte Python realizate de subsemnatul pentru și în diferite ocazii. Cele mai complexe sunt oferite ca pachete care pot fi descărcate de pe repozitoriul meu de pe GitHub.

Medii de dezvoltare virtuale personalizate, în Visual Studio Code

O problemă de care m-am lovit la utilizarea Visual Studio Code este absența bibliotecilor în mediul de lucru selectat. Mesajul de eroare este:

user@system % ModuleNotFoundError: No module named 'mike'

Soluția mai complicată este modificarea mediului de dezvoltare global, adică cel instalat pe computer cu distribuția de Python utilizată. Dar acest lucru devine și mai complicat dacă, precum în cazul meu, se folosește un gestionar de aplicații gen homebrew. În aceste situații cea mai simplă și elegantă soluție este configurarea în Visual Studio Code a mediului de dezvoltare în fiecare proiect Python. Această metodă este asemănătoare modului în care se configurează PyCharm.

Pașii necesari sunt: Crearea unui mediu virtual de dezvoltare; în terminalul VSC se scrie:

user@system % python3.11 -m venv teste

Unde "test" este numele mediului virtual de dezvoltare

Apoi se activează mediul virtual de dezvoltare

user@system % source teste/bin/activate

Unde teste/bin/activate este calea către fișierul de activare care a fost creat odată cu mediul virtual de dezvoltare

De aici, instalarea librăriilor se face extrem de simplu cu pip. De exemplu:

(teste) user@system % pip3 install numpy

etc.

Este indicat să se actualizeze pip cu comanda:

(teste) user@system % pip3 install --upgrade pip

Pentru părăsirea mediului virtual se scrie:

(teste) user@system % deactivate

Exemple

Note

  1. Un limbaj de programare este dinamic dacă, la rulare, execută activități pe care limbajele statice le execută în timpul compilării. De pildă adăugarea unui modul sau extensia unui program la rulare reprezintă activități tipice unui limbaj dinamic. Din acest motiv, limbajele dinamice solicită mult mai mult resursele pe care le au la dispoziție deoarece depind de execuția simultană a unui subsistem de rulare a procedurilor. Spre deosebire de limbajele statice (de ex.: C, C++ etc), limbajele dinamice sunt caracterizate prin performanțe inferioare. Mai multe informații aici.
  2. Un limbaj interpretat este un tip de limbaj de programare pentru care majoritatea sau toate instrucțiunile se execută direct și liber fără a necesita compilare în cod-mașină (ex. C, C++ etc). Mai multe informații aici
  3. O formă de sistem de gestiune automată a memoriei. Mai multe informații aici.
  4. Pe locul 3 în clasamentul TIOBE, cu un scor de 9,7% (după C, care a împlinit venerabila vârstă de 47 de ani).
  5. R Vs Python: What’s the Difference?

Cărți recomandate

Recomandările de mai jos sunt făcute exclusiv pe baza experienței personale.

Cinci stele ;)

Ok