Hasznos eszközök a helyi fejlesztéshez

Hasznos eszközök, amelyek segítenek a Python Exercism-kód fejlesztésében a saját gépeden.


Note

Ez egy gyűjtemény azokról az eszközökről, amelyek népszerűek a közösségünkben. Nem célja, hogy előíró vagy kimerítő legyen. Úgy gondoljuk, hogy ezek az eszközök jól végzik a dolgukat, de természetesen biztos vannak más jó eszközök is. Ha van szerkesztő-, IDE-, eszköz- vagy bővítményajánlásod, bátorítunk, hogy add hozzá ezt a dokumentumhoz a GitHubon.



Mielőtt elkezded a felfedezést, győződj meg róla, hogy a Python egy friss verziója telepítve van. Az Exercism webes platformja jelenleg a Python 3.10 - 3.13.5 (feladatok és tesztek) és a Python 3.13.5 (tooling) verziót támogatja. Az online tesztfuttatónk jelenleg a pytest 8.4.0 és a pytest-subtests 0.14.2 verziót használja. Az online elemzőnk a pylint 4.0.4 verziót használja. Ha helyben eltérő verziókat használsz a Python-ból, pytest-ből vagy pylint-ből, az eltérő eredményeket adhat a weboldalhoz képest. További információért lásd a Python helyi telepítése részt.


Virtuális környezetek

A Python virtuális környezetek könnyűsúlyú futásidejű és csomagizolációt kínálnak. Segíthetnek rendszerezni a projektjeidet azáltal, hogy a telepített Python-csomagokat egy adott környezetkönyvtárban együtt tartják. A különböző környezetek a Python futásidejének különböző verzióit tárolhatják a projekt- vagy könyvtárfüggőségekkel együtt. Ez segít elkerülni azokat a hibákat és inkompatibilitásokat, amelyeket az okoz, ha egy könyvtárat az egyik projekthez frissítesz, és az „eltör” egy függőséget egy másikban.

Sok virtuális környezet és virtuális környezet-szerű eszköz van használatban ma, és egyre növekvő mozgalom, hogy inline script metaadatokat, dev konténereket vagy a docker-t használják a virtuális környezetek helyett. Fontos kipróbálni a különböző stratégiákat, és megtalálni azt, amelyik illik a fejlesztési stílusodhoz és a projekted igényeihez. Ne feltételezd, hogy az itt bemutatott stratégiák mindenkire egyformán érvényesek, vagy hogy ezek az egyetlen lehetőségeid. Az itt nem tárgyalt eszközök általánosabb áttekintéséhez nézd meg Bas Nijholt blogbejegyzését, és maradj kíváncsi.

Három jelentős virtuális környezet eszközt fogunk itt bemutatni: a Python szabványos könyvtárának venv eszközét, a harmadik féltől származó conda env eszközt, amely a conda csomagkezelőt és (általában) az Anaconda Python disztribúciót használja, valamint a harmadik féltől származó pip + venv helyettesítő uv eszközt. Mindhárom meglehetősen egyszerűen használható és/vagy telepíthető.

Ezenkívül a PyEnv, a Poetry és a virtualenvwrapper olyan eszközök, amelyek segíthetnek több Python-verzió és több Python-környezet kezelésében ugyanazon a gépen.


Virtuális környezet létrehozása a venv-vel

Virtuális környezet létrehozásához a venv használatával lépj be a cd paranccsal abba a könyvtárba, ahol a környezeteidet tárolni szeretnéd. Ennek egy olyan könyvtárnak kell lennie, amely elkülönül a projekted kódjától, és amelyet nem fogsz verziókezelésbe tenni. Ezután futtasd a venv parancsot annak a mappának a nevével, ahol ezt a konkrét környezetet tárolni szeretnéd. Általános konvenció, hogy ezt a mappát <project-name-here>_venv-nek nevezzük:

Windows

PS C:\Users\foobar> py -m venv {name_of_virtualenv}

A virtuális környezet aktiválásához futtasd a következő parancsot:

PS> .\{name_of_virtual_env}\Scripts\activate.bat
(venv) PS> _

Linux/MacOS

$ python3 -m venv {name_of_virtualenv}
created virtual environment ... in 8568ms

A virtuális környezet aktiválásához futtasd a következő parancsot:

$ source {name_of_virtual_env}/bin/activate
(venv) $ _

Miután egy venv aktiválva van, pip parancsokat futtathatsz csomagtelepítéshez „a környezeten belül”. A telepített csomagok a venv Python-verziójához lesznek társítva, és a {name_of_virtual_env}/Lib mappában helyezkednek el.

A deaktiválás a deactivate szkript meghívásával történhet, amely ugyanabban a könyvtárban található, mint az activate.


Virtuális környezet létrehozása a conda használatával

A legújabb conda verzió a miniconda segítségével telepíthető. Ez a conda csalólap nagyon hasznos, akárcsak a conda dokumentáció.

Eredetileg Python csomagkezelőként hozták létre a népszerű Anaconda distribution „tudományos Python” disztribúcióhoz, de a conda-t később általánosították és kiterjesztették. A Conda környezetek hasonlóak a venv-ekhez, a fő különbség az, hogy a conda virtuális környezeteket tud létrehozni és csomagokat telepíteni sok más programozási nyelvhez a Python mellett.

A Conda által támogatott nyelvek közé tartozik az R, a JavaScript, a Ruby, a Fortran, a C/C++, a Scala, a Java és még sok más. A conda és venv parancsok összehasonlításáért lásd a conda parancsreferenciáját.


MacOS/Linux

conda környezet létrehozásához írd be a következőt, a {name of environment} helyére a választott nevet, a python={version} helyére pedig a kívánt Python-verziót írd. Ezt követően megadhatsz további csomagokat, amelyeket a környezetbe szeretnél telepíteni:

$ conda create --name {name of environment} python={version} "pytest>6.0" pylint
...

## Package Plan ##

  environment location: /usr/local/anaconda3/envs/test_env

  added / updated specs:
    - pylint
    - pytest[version='>6']
    - python=3.10


The following packages will be downloaded:

    package                    |            build
    ---------------------------|-----------------
    astroid-2.11.1             |  py310h2ec42d9_0         364 KB  conda-forge
    dill-0.3.4                 |     pyhd8ed1ab_0          62 KB  conda-forge
    lazy-object-proxy-1.7.1    |  py310he24745e_0          32 KB  conda-forge
    ....
    additional packages here
    ....
    ------------------------------------------------------------
                                           Total:        21.8 MB

Proceed ([y]/n)? y

Preparing transaction: done
Verifying transaction: done
Executing transaction: done
#
# To activate this environment, use
#
#     $ conda activate test_env
#
# To deactivate an active environment, use
#
#     $ conda deactivate

Windows

A conda környezet létrehozása Windows alatt ugyanazokat az általános parancsokat használja, mint Linux/MacOS alatt. Azonban ajánlott, hogy inkább az Anaconda cmd vagy powershell parancssorát használd, mintsem a conda-t az elérési utadhoz add:

(base) PS C:\Users\foobar> conda create --name {name_of_environment} python={version} "pytest>6" pylint
...

Collecting package metadata (current_repodata.json): done
Solving environment: done

## Package Plan ##

  environment location: C:\ProgramData\Anaconda3\envs\test_env

  added / updated specs:
    - pylint
    - pytest[version='>6']
    - python=3.10


The following packages will be downloaded:

    package                    |            build
    ---------------------------|-----------------
    astroid-2.11.1             |  py310h5588dad_0         364 KB  conda-forge
    attrs-21.4.0               |     pyhd8ed1ab_0          49 KB  conda-forge
    bzip2-1.0.8                |       h8ffe710_4         149 KB  conda-forge
    ...
    additional packages here
    ...
    ------------------------------------------------------------
                                           Total:        37.5 MB

Proceed ([y]/n)? y
...
Preparing transaction: done
Verifying transaction: done
Executing transaction: done
#
# To activate this environment, use
#
#     $ conda activate test_env
#
# To deactivate an active environment, use
#
#     $ conda deactivate

UV

Projekteken dolgozás az uv-vel: uv

uv is a Python package + project management tool from Astral written in Rustban. Úgy tervezték, hogy lecserélje a pip-et, a venv-et, a poetry-t és más Python csomagkezelő/függőségkezelő eszközöket. A Conda-val vagy a Mamba-val ellentétben az uv csak a Pythonra specializálódott. Azonban az uv támogatja a más nyelveken, például Fortranban írt Python kiterjesztésmodulok építését is. Az Astral fejleszti a népszerű Ruff lintert és a TY eszközt is, amely egy statikus típusellenőrző Python típusannotációkhoz, mindkettő Rustban íródott.

Ahelyett, hogy itt részletekbe mennénk, a UV dokumentáció a legjobb forrás a telepítéshez és beállításhoz.

Virtuális környezet wrapper

Dokumentumok és háttér: virtualenvwrapper.

A virtualenvwrapper csomag a venv fölött működik, hogy az összes virtuális környezetedet egy helyen kezelje. Létrehozhatsz, másolhatsz, törölhetsz és válthatsz a környezetek között linux-szerű parancsokkal, például lsvirtualenv (környezetek listázása) és mkvirtualenv (környezet létrehozása). Lehetővé teszi további kezelőeszközök hozzáadását kiterjesztések segítségével. Sőt, saját kiterjesztéseket is készíthetsz az eszközhöz ezzel a bemutatóval.


PyEnv

pyenv is the Python fork of the popular rbenv/ruby-build tools modified for Python. Lényegében szkriptek és shimek gyűjteménye, amelyek lehetővé teszik a Python-verziók globális és felhasználóspecifikus beállítását. Igyekszik követni a Unix hagyományát az egyetlen célra szolgáló, diszkrét eszköznek, amely egy dolgot jól csinál.

pyenv és a pyenv dokumentációja a GitHubon található.



Szerkesztők és IDE-k



Visual Studio Code

A Visual Studio Code (VS Code) egy ingyenes kódszerkesztő, amelyet a Microsoft készített. Kiváló támogatást nyújt mind a virtuális/conda környezetekhez, mind a docker eszközhöz (a docker bővítményen keresztül), és számos különböző bővítménnyel egészíthető ki teszteléshez, linteléshez, formázáshoz és webfejlesztéshez.

Python a VS Code-hoz

Kiterjesztés-azonosító: ms-python.python

Python kiterjesztés fejléce a VS Code-ban

A Microsoft Python kiterjesztése a hivatalos Microsoft Python kiterjesztés a VS Code-hoz, és erősen ajánlott telepíteni. Széles funkcióválasztékot kínál, beleértve a környezetkezelést, tesztkezelést, lintelést és debugolást. A legutóbbi kiadás óta a MS Python kiterjesztés telepítése letölti a pylance (népszerű csomag Python kód linteléséhez és validálásához) és a jupyter (Jupyter Notebookok használatához) csomagot is.

  • Egy beállítási útmutató itt érhető el, és a beállítási referencia nagyon hasznos.
  • A Python-verziók beállításáról/virtuális környezetekkel való munkáról itt találsz információt.
  • Az unittest és pytest beállításáról és használatáról VS Code-ban itt találsz információt.

PyCharm

A PyCharm egy IDE (integrált fejlesztői környezet), amelyet a JetBrains készített. Kifejezetten Pythonra tervezték, és népszerű a szakemberek körében. A VS Code-hoz hasonlóan különféle fizetős és ingyenes bővítményekkel, témákkal és formázókkal egészíthető ki. A fizetős verzió támogatja a Django fejlesztést, a Docker fejlesztést és az adatbázis-integrációt is.

Pycharm és Pytest
  • A pytest pycharmmal való beállításának lépései itt találhatók.
  • A Pycharm alapértelmezésben az unittest-et használja, ezért telepíteni kell a pytest-et abba a környezetbe, amelyet a pycharmmal használsz (lásd az értelmezőről és környezetről szóló dokumentumokat fentebb), majd rá kell mutatnod a pycharmot erre.
  • A tesztek futtatása közvetlenül a grafikus felületről nagyon egyszerű, de ne felejtsd el alaposan megnézni a mögöttes pytest paramétereket, hogy a neked tetsző módon legyen beállítva.
  • A pycharmban való tesztfuttatás és debugolás általános dokumentációja itt található.
  • További debug eszközök és útmutatás itt található.

Spyder IDE

A Spyder egy platformfüggetlen, ingyenes és nyílt forráskódú Python IDE, amelyet a tudományos közösség igényeire szabtak. Gyakran a Python Anaconda disztribúciójával együtt telepítik, de önállóan is telepíthető, és bármely Python-verzióval használható. Az önálló telepítést javasoljuk a maximális rugalmasság és a csomagütközések elkerülése érdekében.

A Spyder teljes mértékben támogatja a venv és conda környezeteket. Tartalmaz egy beépített IPython interaktív terminált, egy interaktív debuggert, valamint gazdag támogatást a szerkesztőn belüli grafikonkészítéshez és adatfeltáráshoz. További kódkiegészítést és lintelést a kite biztosít. A Jupyter Notebookokkal és a tesztelőeszközökkel való integrációt közösség által fejlesztett bővítmények biztosítják. Saját bővítményeket is írhatsz a Spyder API használatával.


Emacs

Az Emacs egy ingyenes, nyílt forráskódú és erősen testreszabható szövegszerkesztő, amelyet Lispben írtak. Egy remek telepítési és beállítási útmutató érhető el a Real Python oldalon.

  • Az Emacs Wiki is tartalmaz egy jó útmutatót a Python programozáshoz Emacsszel.
  • A Full Stack Python is gyűjtött néhány hasznos információt és linket az Emacs használatának megkezdéséhez.

Vim

A Vim a Unix szabványos vi szövegszerkesztőjének ingyenes és „továbbfejlesztett” változata. Számos operációs rendszeren és Linux/Unix változaton elérhető. Egy remek telepítési és beállítási útmutató érhető el a Real Python oldalon, és hasznos csalólapok találhatók a vimsheet, a glump és a rtorr oldalakon.

Még ha úgy döntesz is, hogy a Python kód szerkesztése vim-ben nem neked való, ajánlott megismerkedni az alapvető parancsokkal. A vim vagy a vi gyakran „alap” vagy „alapértelmezett” szövegszerkesztő a Linux és Unix disztribúciókban, és ezeken a rendszereken ez az alapértelmezett szerkesztő a git commit üzenetekhez (többek között). Jó eséllyel találod majd magad *nix rendszeren, ahol csak vi áll rendelkezésre egy konfigurációs fájl szerkesztéséhez, így ha tudod, hogyan kell kilépni a vimből, az (legalábbis) jó önvédelem.


Spacemacs

A Spacemacs (github repo) egy ingyenes, közösségvezérelt Emacs disztribúció, amely egyesíti az Emacs és a Vim funkcionalitását.

  • A hivatalos dokumentáció itt található
  • Ez a útmutató az opensource-on gyors áttekintést ad a telepítési és konfigurációs lehetőségekről.
  • A spacemacs python layer funkciókat ad hozzá a teszteléshez, linteléshez, környezetkezeléshez és kódformázáshoz.

Sublime Text

A Sublime Text egy fizetős szövegszerkesztő kódoláshoz, amelyet a Sublime HQ Pty Ltd készített. Hasonló a VS Code-hoz és az Atomhoz, számos csomaggal és bővítménnyel a testreszabáshoz. Saját bővítményeket is fejleszthetsz a szerkesztőhöz Python használatával.