Hasznos eszközök, amelyek segítenek a Python Exercism-kód fejlesztésében a saját gépeden.
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.
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.
venv-velVirtuá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.
conda használatávalA 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.
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
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
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.
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 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ó.
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.
Kiterjesztés-azonosító: ms-python.python

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.
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.
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.coverage bővítmény a pytest-hez megtöri a pycharm debuggerét.
További információért lásd a futtatás/debug konfiguráció: pytest részt.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.
Spyder GYIK
Python verziók/virtuális környezetek beállítása a Spyderben
A Spyder beállítása unittest és pytest tesztek futtatására a spyder unittest plugin segítségével
További spyder bővítmények
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.
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.
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 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.