Canaux (sources) Conda (win-x64)

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-forge
Loading channels: done
No match found for: curses. Search: *curses*
# Name Version Build Channel
m2-ncurses 6.0.20160220 1 pkgs/msys2
m2-ncurses 6.0.20160220 2 conda-forge
m2-ncurses 6.0.20160220 2 pkgs/msys2
m2-ncurses 6.4.1 hd8ed1ab_0 conda-forge
ncurses-amzn2-aarch64 6.0 5 pkgs/main
ncurses-base-amzn2-aarch64 6.0 5 pkgs/main
ncurses-libs-amzn2-aarch64 6.0 5 pkgs/main
pdcurses 3.9 h8ffe710_0 conda-forge
pdcurses 3.9 h8ffe710_1 conda-forge
pdcurses 3.9 h8ffe710_2 conda-forge
pdcurses 3.9 h8ffe710_3 conda-forge

Sans options de canal nous avons:

conda search curses
Loading channels: done
No match found for: curses. Search: *curses*
# Name Version Build Channel
m2-ncurses 6.0.20160220 1 pkgs/msys2
m2-ncurses 6.0.20160220 2 pkgs/msys2
ncurses-amzn2-aarch64 6.0 5 pkgs/main
ncurses-base-amzn2-aarch64 6.0 5 pkgs/main
ncurses-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-ncurses
conda install msys2::m2-ncurses
conda install labscript-suite::windows-curses
conda 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-curses
Channels:
 - defaults
 - labscript-suite
Platform: win-64
Collecting package metadata (repodata.json): done
Solving 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: done
Verifying transaction: done
Executing 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-forge
curses               3 package(s) found
  Package  |         Feedstock(s)         |  Metadata
ncurses    | ncurses-feedstock            | Browse
pdcurses   | pdcurses-feedstock           | Browse
m2-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.

Retour en haut