4. Un exemple d’application
Prenons l’exemple de la bibliothèque curses (ou ncurses). Dans le cas de PyPI, une recherche ‘curses’ donne 792 projet, qui incluent cette chaine dans leur titre ou leur description, et 201 projets pour ‘ncurses’. En utilisant les classifieurs (OS > Windows > Windows 10, Windows 11) nous n’avons plus rien. Avec OS > Windows, nous obtenons 15 projets dont windows-curses [ https://pypi.org/project/windows-curses/ ].
Dans le cas d’une installation miniconda3.
Si nous utilisons une commande conda search avec une option de canal, nous avons :
(base) C:\Local>conda search curses --channel conda-forgeLoading channels: doneNo match found for: curses. Search: *curses*# Name Version Build Channelm2-ncurses 6.0.20160220 1 pkgs/msys2m2-ncurses 6.0.20160220 2 conda-forgem2-ncurses 6.0.20160220 2 pkgs/msys2m2-ncurses 6.4.1 hd8ed1ab_0 conda-forgencurses-amzn2-aarch64 6.0 5 pkgs/mainncurses-base-amzn2-aarch64 6.0 5 pkgs/mainncurses-libs-amzn2-aarch64 6.0 5 pkgs/mainpdcurses 3.9 h8ffe710_0 conda-forgepdcurses 3.9 h8ffe710_1 conda-forgepdcurses 3.9 h8ffe710_2 conda-forgepdcurses 3.9 h8ffe710_3 conda-forge |
Sans options de canal nous avons:
conda search cursesLoading channels: doneNo match found for: curses. Search: *curses*# Name Version Build Channelm2-ncurses 6.0.20160220 1 pkgs/msys2m2-ncurses 6.0.20160220 2 pkgs/msys2ncurses-amzn2-aarch64 6.0 5 pkgs/mainncurses-base-amzn2-aarch64 6.0 5 pkgs/mainncurses-libs-amzn2-aarch64 6.0 5 pkgs/main |
On voit que les paquetages dans conda-forge ne sont pas listés. La commande conda search curses --info donne plus d’infos, mais pas forcément faciles à lire. Pour faire un choix il faudra aller sur [ https://anaconda.org/ ] et faire une recherche, par exemple ‘curses’. Pour faciliter la recherche, on pourra sélectionner la plateforme « win-64 ». Dans ce cas, nous retrouvons :
| Canal | Paquetage | Version | Info | Python |
| conda-forge | m2-ncurses |
6.4.1 | System V Release 4.0 curses emulation library | ? |
| msys2 | m2-ncurses |
6.0.x | System V Release 4.0 curses emulation library | ? |
| labscript-suite | windows-curses |
2.3.1 | Support for the standard curses module on Windows | <= 3.11 |
| conda-forge | pdcurses |
3.9 | PDCurses – a curses library for environments that don’t fit the termcap/terminfo model. | ? |
Le site indique également le mode d’installation en fonction du canal, par exemple :
conda install conda-forge::m2-ncursesconda install msys2::m2-ncursesconda install labscript-suite::windows-cursesconda install conda-forge::pdcurses |
Les versions m2 vont installer des dépendances : m2-conda-epoch, m2-gcc-libs, m2-msys2-runtime … Testons plutôt le canal labscript-suite :
(base) C:\Dev>conda install labscript-suite::windows-cursesChannels: - defaults - labscript-suitePlatform: win-64Collecting package metadata (repodata.json): doneSolving environment: done## Package Plan ## environment location: C:\Python3 added / updated specs: - labscript-suite::windows-cursesThe following NEW packages will be INSTALLED: frozendict pkgs/main/win-64::frozendict-2.4.2-py310h2bbff1b_0 windows-curses labscript-suite/win-64::windows-curses-2.3.1-py310h82bb817_0The following packages will be UPDATED: conda 24.3.0-py310haa95532_0 --> 24.5.0-py310haa95532_0 openssl 3.0.13-h2bbff1b_0 --> 3.0.13-h2bbff1b_1Proceed ([y]/n)? yDownloading and Extracting Packages:Preparing transaction: doneVerifying transaction: doneExecuting transaction: done |
Nous constatons qu’il y a aussi une mise à jour de Conda et d’OpenSSL.
Dans le cas d’une distribution miniforge3
Les commandes mamba search curses ou mamba search ncurses ne donnent rien, par contre en allant sur le site de Conda-Forge [ https://conda-forge.org/packages/ ] pour faire une recherche, nous trouvons les 3 paquetages disponibles sur conda-forge :
Packages in conda-forgecurses 3 package(s) found Package | Feedstock(s) | Metadatancurses | ncurses-feedstock | Browsepdcurses | pdcurses-feedstock | Browsem2-ncurses | m2-binary-packages-feedstock | Browse |
Au final, autant les choses sont faciles lorsqu’on parle de paquetages qui sont devenus des standards, mais ce n’est pas si simple lorsque le paquetage devient rare ou exotique.