Skip to content

Installations

ce guide vise à vous permettre de faire toutes les installations nécessaires.

la liste des outils

La liste des outils

il nous faut a minima :

  • le terminal - nous utilisons bash, qui est

    • natif sur les OS linux et MacOS,
    • et qui vient avec le produit git for windows
  • l’éditeur de code Visual Studio Code, mieux connu comme VS-code

  • miniconda pour Python (et les environnements virtuels)

  • Jupyter pour les notebooks

    • on parlera un peu de markdown pour la mise en forme du texte,
    • et de pour les formules mathématiques
  • Git pour la gestion de versions

    • c’est un outil super-utile pour le développement, c’est indispensable que vous sachiez l’utiliser
  • enfin on configurera également un compte sur github.com

    • pour le stockage de vos travaux - typiquement les rendus
    • et le travail en groupe - typiquement les hackatons et projets
    et pour le S2

    pour le S2, on vous demandera aussi d’installer Node.js; ce n’est pas nécessaire de l’installer tout de suite mais les instructions sont ici

quelques conseils

Mais avant de commencer, voici quelques recommandations générales :

comment tester une installation

après avoir installé, disons par exemple VS Code, on va vérifier que ça a bien marché.
Pour ça, on vous dit de taper dans le terminal code .

mais en fait l’installation de VS Code modifie la façon dont s’initialise le terminal,
et du coup ça n’affecte pas les terminaux créés avant l’installation.

ceci est notamment pertinent lorsque vous recevez une erreur comme
code: command not found
si ce symptôme persiste même après avoir essayé dans un nouveau terminal, c’est que l’installation s’est mal passée.

Le PATH (pour les curieux)

le PATH c’est le mécanisme qui permet au terminal de trouver les commandes

et quand on installe un nouveau logiciel - comme on va le faire tout de suite avec git for windows - il est souvent nécessaire de modifier le PATH pour que les nouvelles commandes deviennent accessibles depuis le terminal

ce n’est pas crucial de le savoir, mais si vous êtes curieux, sachez que

  • PATH c’est ce qu’on appelle une variable d’environnement (ça veut dire qu’elle se propage d’un processus à l’autre),

  • que c’est une liste de répertoires où sont cherchées les commandes

    Terminal window
    # un exemple sur linux/macos
    # le ':' est un séparateur
    $ echo $PATH
    /opt/conda/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
  • et qu’elle est le plus souvent définie/modifiée dans un fichier caché qui s’appelle .bashrc dans votre homedir

  • lorsque vous créez un nouveau terminal, celui-ci va lire le contenu de votre .bashrc
    c’est pourquoi il faut créer un nouveau terminal pour tester une installation qu’on vient juste de faire

comment bien installer sur MacOS

sur Mac, quand vous installez une application - comme notamment vs-code:
il est trés important de copier l’application dans le dossier Applications - on aura l’occasion d’en reparler

🔧 git (et bash sur Windows)

on installe

suivez les instructions pour votre OS

en installant git for windows on va faire d’une pierre deux coups, et installer à la fois bash et git

  • allez sur le site là https://gitforwindows.org/

  • téléchargez et lancez l’installation…

  • vous pouvez prendre toutes les options par défaut

    on peut prendre toutes les options par défaut

    et entre autres, à la question Adjusting your PATH environment :
    choisissez au moins l’option recommandée (#2) - on peut prendre l’option (#3) si on veut importer plus d’outils dans le terminal, mais ce n’est pas strictement nécessaire pour le cours

    fig-set-path-git-for-windows.png
    machine DSI / pas de droit administrateur ?

    le programme d’installation de git for windows est conçu pour installer le programme dans C:\Program Files, qui peut nécessiter des droits administrateur; et malheureusement il ne propose pas de choisir un autre endroit…

    aussi, si vous n’arrivez pas à installer git for windows, il va vous falloir lancer le programme d’installation “à la main” c’est-à-dire depuis un terminal; voici la procédure à suivre dans ce cas:

    • lancer un terminal PowerShell (on ne peut pas encore utiliser le terminal bash naturellement, puisqu’on ne l’a pas encore installé)
    • trouver le nom de votre homedir; pour cela tapez
      Terminal window
      cd
      pwd
      qui devrait vous répondre quelque chose qui contient votre nom, comme genre
      Terminal window
      C:\Users\Jean Mineur
    • se déplacer dans le dossier où vous avez téléchargé le programme d’installation (généralement Downloads)
      Terminal window
      cd Downloads
    • lancer le programme d’installation en ligne de commande en précisant un dossier d’installation sous votre homedir
      à affiner selon le nom du fichier que vous avez téléchargé, mais ça ressemble à
      Terminal window
      .\Git-2.34.1-64-bit.exe /DIR="C:\Users\Jean Mineur\GitForWindows"
on vérifie bash (tous OS)

vous devez pouvoir

  • lancer un terminal bash

    Windows

    cherchez bash dans le menu Démarrer
    lancez l’application qui s’appelle Git Bash
    n’hésitez pas à faire en sorte (Pin to Taskbar) que ce programme reste dans la barre des tâches même lorsqu’il est inactif; ça vous facilitera la vie…

  • pour vérifier que c’est bien du bash - et pas du PowerShell par exemple, tapez

    Terminal window
    echo $BASH_VERSION

    qui doit répondre

    Terminal window
    5.2.15(1)-release # c'est juste un exemple hein
    zsh sur Mac

    si vous avez un Mac, il se peut que votre terminal soit un zsh et pas un bash
    ce n’est pas un souci, les deux outils sont très largement compatibles !
    pour savoir quel est exactement votre shell, vous pouvez faire

    Terminal window
    echo $SHELL
on vérifie git (tous OS)
  • pour vérifer que vous avez bien installé git:

    Terminal window
    $ git --version
    git version 2.41.0 # pareil, la réponse peut être différente chez vous

    remarque dans cette forme, le $ signifie que j’ai tapé git --version
    et que ça m’a répondu git version 2.41.0
    c’est pour abréger un peu
    pensez bien à ne pas taper le $ vous même
    car bien sûr ça va marcher beaucoup moins bien si vous le faites ;)

  • si vous n’avez pas au moins la version 2.23, faites-vous connaitre; le mieux serait de mettre à jour pour obtenir une version plus récente, car certains éléments du cours sur git ne vont pas fonctionner chez vous…

🚀 exercice: le dossier cours-info

pas à pas

depuis le terminal on peut tout faire ! et pour commencer on va apprendre à créer un dossier
c’est dans ce dossier qu’on vous invite à travailler pendant les cours d’info

  • créez un nouveau terminal

  • regardez dans quel dossier vous êtes

    Terminal window
    pwd

    qui devrait vous répondre quelque chose qui contient votre nom, comme genre

    Terminal window
    # sur Windows
    /c/Users/Jean Mineur
    # sur Mac / Linux
    /Users/jeanmineur

    c’est votre home directory, en abrégé homedir

    ce n'est pas le cas ?

    si vous vous trouvez dans un dossier bizarre (qui n’a rien à voir avec votre nom), prenez l’habitude de commencer par forcer le terminal à aller dans votre homedir en faisant simplement

    Terminal window
    cd
    à quoi ça sert ?

    sur mac et linux, c’est optionnel car le terminal démarre justement dans le homedir; c’est le comportement normal
    par contre selon les configurations sur Windows, il peut être nécessaire de prendre l’habitude de faire un premier cd au début du terminal, car dans certains setups le terminal démarre dans un autre dossier…

  • créez un dossier cours-info

    Terminal window
    mkdir cours-info

    bien entendu il ne faut le faire qu’une seule fois :)

  • allez dans ce nouveau dossier

    Terminal window
    cd cours-info

    éventuellement refaites pwd pour constater que vous avez changé de dossier

  • maintenant ouvrez votre explorateur de fichiers, et déplacez-vous dans ce même dossier à ce stade vous devez constater que le dossier est bien créé, et qu’il est bien vide

🔧 vs-code

nous demandons à tous les élèves d’installer et de savoir utiliser vs-code
il s’agit d’un éditeur de code, c’est ce qu’on va utiliser pour écrire nos programmes

installation (toutes plateformes)

On y va. Le site est là https://code.visualstudio.com/.
Vous voulez installer donc il va falloir que vous alliez dans une section download … vous la voyez ?
à vous de jouer maintenant

Windows: toutes les option par défaut

pour les Windows, à nouveau vous prenez toutes les options par défaut (enfin, il faut accepter la licence, évidemment)

pour les Mac: déplacez dans le dossier Applications !

Attention

on l’a signalé déjà rapidement, mais la bonne façon d’installer une appli sur MacOS en général est de la glisser-déplacer dans le dossier Applications

aussi une fois que vous aurez téléchargé, et double cliqué sur le zip, vous allez voir un fichier de type .app, qui se trouve dans votre dossier Downloads
il est impératif de glisser-déplacer ce fichier dans le dossier Applications
si on ne le fait pas, ça semble fonctionner, mais on a des tas de problèmes assez retors par la suite

on vérifie l'installation de vs-code
  • si le programme d’installation a lancé un exemplaire de vs-code, fermez-le

  • dans un nouveau terminal (voir + haut)

    Terminal window
    code --version

    qui doit afficher un numéro de version (et d’autres détails, par exemple

    Terminal window
    1.84.2
    1a5daa3a0231a0fbba4f14db7ec463cf99d7768e
    x64
    command not found ?

    si à la place vous voyez

    Terminal window
    code: command not found

    d’abord vérifiez que vous avez bien essayé dans un nouveau terminal (oui je sais…)
    et sinon allez voir cette page

  • lorsque ça fonctionne, prenez l’habitude de lancer vs-code comme ceci

    Terminal window
    # first I want to choose in which folder I am going to work
    cd
    cd cours-info
    code .
  • et tant que vous y êtes, activez le mode Auto Save:
    ⮑ dans le menu File, cliquez sur Auto Save (ça ajoute une check mark)
    l’effet de ce réglage est que vos modifications sont sauvées toutes seules, pas besoin de Control-S sans arrêt !

  • pour ceux qui sont en avance, amusez-vous à créer un fichier:

    • Control-n (ou Command-n sur mac) pour créer un nouveau fichier
    • Control-s (sur mac c’est toujours Command-truc) pour indiquer dans quel fichier le sauver, disons foo.txt
    • écrivez une ligne ou deux
    • quittez vs-code
    • vérifiez la présence du nouveau fichier
      • depuis l’explorateur de fichiers
      • et aussi depuis le terminal, où vous pouvez utiliser cat foo.txt pour afficher le contenu que vous venez de taper

🔧 miniconda / Python

  • il y a de très nombreuses distributions de Python disponibles

  • notre choix : miniconda, parce que

    • il est relativement léger
    • il permet d’installer en mode “user”, c’est-à-dire sans droits administrateur
    • il permet également de fabriquer des environnements virtuels (pas de panique, on n’utilisera pas ça tout de suite, mais c’est une possibilité qui devient vite intéressante)
  • ça va sans dire, mais ne prenez surtout pas Python 2.7 !

on vérifie conda et python

et on fait quoi pour vérifier ? on crée un nouveau terminal !

le prompt (rappel)
  • le signe $ ne fait pas partie de ce que vous devez taper
  • c’est juste une indication pour dire que la commande s’adresse au terminal
    c-à-d à nouveau : GitBash sur Windows, Terminal sur MacOS,
    et n’importe quel terminal bash sur linux

ça signifie que vous n’avez pas à taper le $, ce sera déjà affiché lorsque vous taperez vos commandes

la commande conda

vous créez un nouveau terminal, et vous tapez

Terminal window
$ conda --version
conda 23.5.2

qui ne doit pas vous répondre command not found
si c’est le cas, c’est que vous n’avez pas bien coché la case
Add Miniconda3 to my PATH environment variable
dans ce cas voyez ici

version de python

pour savoir la version de python installée

Terminal window
$ python --version
Python 3.11.4

vous devez avoir une version 3.x, et surtout pas 2.7

quel python ?

pour savoir quelle version de python est utilisée, vous pouvez taper

Terminal window
$ type python

qui doit vous répondre quelque chose comme

Terminal window
# sur Windows avec notre setup vous devez avoir
python is /c/miniconda/python
# sur Mac par exemple je vois
python is /c/Users/JeanMineur/miniconda3/python

🚀 exercice: vs-code + python

pas à pas
  • créer un nouveau terminal

  • aller dans le dossier cours-info (on fait comment déjà ?)

  • lancez vs-code

    Terminal window
    code .
  • copiez-collez le code ci-dessous dans un fichier qui s’appelle fact.py

    # une fonction qui calcule factorielle
    def fact(n):
    return 1 if n <= 1 else n * fact(n-1)
    # on affiche quelques résultats
    for n in [4, 25]:
    print(f"fact({n}) = {fact(n)}")
    quelques trucs

    utilisez les raccourcis clavier (remplacer Control par Command sur Mac)

    • Control-N: créer un nouveau fichier
    • Control-S: sauver le nouveau fichier, et lui donner un nom si nécessaire
    • Control-A Control-C Control-V: comme d’habitude pour le copier-coller
  • exécutez le programme

    Terminal window
    $ python fact.py
    fact(4) = 24
    fact(25) = 15511210043330985984000000

extras Python

🔧 les librairies numériques

c’est-à-dire:

  • numpy + pandas + matplotlib
  • ainsi que IPython + Jupyter
à quoi servent Jupyter et Jupytext ?

le cours est écrit sous forme de notebooks Jupyter, dans un format textuel (ici du markdown) grâce à Jupytext

de manière générale vous aurez le choix entre

  • lire le cours en HTML (comme ce premier cours),
  • ou de l’exécuter sous forme de notebook en lançant Jupyter sur votre ordi; on en reparlera
à quoi sert jupytext-config ?

en l’absence de cette dernière commande, depuis Jupyter vous pouvez toujours ouvrir les notebooks jupytext , mais il faut passer par Clic droitOpen withNotebook
une fois que vous aurez exécuté la commande ci-dessus, vous pourrez ouvrir les notebooks simplement en double-cliquant dessus

on vérifie numpy et jupyter
version de ipython et numpy

lancez ipython et tentez de reproduire cette session
vous ne devez pas avoir d’erreur du type ModuleNotFound

Terminal window
$ ipython
Python 3.11.4 | packaged by conda-forge | (main, Jun 10 2023, 18:10:28) [Clang 15.0.7 ]
Type 'copyright', 'credits' or 'license' for more information
IPython 8.14.0 -- An enhanced Interactive Python. Type '?' for help.
In [1]: import numpy
In [2]: print(numpy.__version__)
1.26.0
In [3]: exit()
$
version de jupyter

de retour dans le terminal, affichez les versions des composants de Jupyter avec cette commande
vous ne devez pas avoir de command not found

Terminal window
jupyter --version
les modules installés avec pip (optionnel)
Terminal window
# pour obtenir la liste des librairies installées
# (possiblement beaucoup)
pip list
# pour voir la version installée de UNE librairie, par exemple
pip show numpy

🔧 configuration de l’autoreload

à quoi ça sert ?

le problème: vous êtes dans ipython ou dans un notebook, et vous faites

from my_module import my_function
my_function(...)

et puis ensuite un peu plus tard, vous modifiez my_module.py sous vs-code, et vous voulez essayer la nouvelle version; votre première idée est de refaire l’import pour recharger le module dans l’interpréteur

MAIS là attention, un second import ne recharge pas le fichier ! c’est le comportement attendu, et souhaitable, car charger un module est coûteux; c’est pourquoi l’interpréteur garde en mémoire les modules qu’il a déjà chargés, et du coup vous pouvez ré-importer autant que vous voulez, vous allez toujours utiliser le premier code, et non ce que vous venez de modifier !

la solution: avec cette astuce, vous n’aurez plus besoin de ré-importer, vous pourrez juste ré-exécuter my_function() et vous utiliserez la dernière version du module (pour autant que le nouveau module ne contienne pas d’erreur qui empêche son chargement, bien entendu)

comment ça marche ?

pour les curieux qui veulent comprendre, le script est en bash:

  • il commence par s’assurer que le dossier .ipython/profile_default existe sous le home directory
  • puis dans ce dossier, il ajoute dans le fichier ipython_config.py les 3 lignes de configuration qui précèdent le EOF (c’est du Python bien sûr); le fichier est créé s’il n’existait pas

🔧 Jupyter: windowing mode = defer

si vous rencontrez des soucis avec l’affichage de JupyterLab, qui “saute” lorsque vous essayez de remonter dans le document, procédez à la manipe suivante:

  1. Ouvrez l'éditeur de *Settings*
    jlab-config-defer-1.png
  2. Choisissez le mode `defer`

    cherchez le mot windowing pour trouver la bonne rubrique dans les Settings

    jlab-config-defer-2.png

🚀 exercice: mon premier notebook

cet exercice est optionnel en temps contraint, mais on recommande de le faire à la maison pour se familiariser avec tous ces outils

pas à pas
  1. créez un nouveau terminal
  2. allez dans cours-info
  3. tapez la commande jupyter lab cela doit ouvrir un nouvel onglet dans votre navigateur dans lequel tourne l’application Jupyter et le terminal devient inutilisable
  4. menu Jupytext -> New Text Notebook -> Markdown MyST
  5. renommez le nouveau fichier, qui a été créé sous le nom Untitled.md, en my-first-notebook.md
  6. dans la première cellule vous mettez le code de la fonction fact() (voir + haut)
  7. calculez différentes valeurs de fact() dans les cellules suivantes
  8. créez une cellule markdown et voyez ce que ça donne
    • les styles gras, italique, code, etc..
    • les listes à bullet
    • les titres
    • etc…
  9. (option) dans une autre cellule markdown vous insérez une ou des équations , j’invente:
  10. sortez de JupyterLab en faisant File -> Shutdown
  11. vous retournez dans le terminal qui maintenant fonctionne à nouveau

🔧 configuration git

avant de pouvoir utiliser git, il nous faire un minimum de configuration

c’est très important de bien suivre toutes ces consignes, ou alors vous risquez de sérieusement galérer plus tard…

on vérifie: mon premier commit (optionnel)

voici un petit scénario qui vous fait créer un dossier, un repo git, un fichier, et un commit; toutes les commandes sont à taper dans le terminal (bash bien sûr)

Terminal window
# je repars de mon homedir
cd
# je vais dans le dossier cours-info
cd cours-info
# je crée un nouveau dossier
mkdir my-first-git-repo
# je vais dedans
cd my-first-git-repo
# j'initialise ce dossier comme un repo git
git init
# je lance l'éditeur de code
code .
# à ce stade, dans vs-code, créez le fichier `readme.md`
# avec une ou deux lignes de texte, sauvez-le
# puis retournez dans le terminal:
# on veut que readme.md soit dans le commit qu'on va créer
git add readme.md
git commit
# à ce stade, vous devez voir une fenêtre s'ouvrir dans vs-code
# allez-y, tapez un message sur la première ligne
# (par exemple `mon premier commit`),
# puis faites `Control-S` suivi de `Control-W`
# (ou Command-S suivi de Command-W sur mac)
# et là si tout se passe bien:
# la fenêtre dans vs-code se ferme,
# et si vous retournez dans le terminal
# vous voyez que le `git commit` est terminé
# on peut alors continuer, et faire
git log
# qui doit vous montrer UN commit; vérifiez
# que votre nom et mail est correct
# et que la branche s'appelle bien `main`

github et la clé SSH

depuis Août 2021, il est devenu très compliqué d’utiliser la méthode dite ‘HTTPS’ pour s’authentifier chez github;
aussi nous allons ensemble voir comment créer une clé pour la méthode SSH

🔧 compte github

pour commencer, créez-vous un compte sur github si ce n’est pas déjà fait

c’est quoi SSH ?

au départ, c’est un système de terminal distant pour pouvoir administrer les serveurs à distance; l’authentification est basée sur le principe d’une paire de clés publique/privée

sans entrer dans les détails, ces deux morceaux sont en gros deux éléments symétriques l’un de l’autre dans un très gros groupe fini, et on ne peut pas facilement calculer l’un à partir de l’autre

par définition:

  • la clé publique peut être divulguée sans aucun souci au monde entier
  • par contre la clé privée doit être gardée secrète, donc jamais exposée/copiée en dehors de votre ordi

et donc, ce qu’on va faire tout simplement, c’est:

  • générer une paire de clés
  • et déposer une copie de la clé publique sur github, en l’associant à votre compte github

🔧 on y va

création de la paire de clés

pour générer la clé publique vous faites simplement dans le terminal

Terminal window
ssh-keygen -t rsa

ce programme va vous poser des questions, à ce stade je vous recommande de toujours répondre par simplement la touche Entrée, pour accepter les défauts et ne pas attacher de mot de passe votre clé privée (ce qui n’est pas une pratique hyper-sûre, mais à ce stade de votre cursus ça parait raisonnable; si vous êtes geek et/ou très soucieux de sécurité, mettez un mot de passe mais soyez prêt à taper votre mot de passe ad nauseam, ou à passer du temps à des configurations scabreuses pour ne pas avoir à le faire…)

ça ressemble à ceci

vous n’aurez pas exactement les mêmes messages, mais pour que vous ne soyez pas surpris voici en gros à quoi vous attendre comme session

ssh-keygen.png
affichage de la clé publique

ssh-keygen va avoir pour effet de créer deux fichiers situés dans le dossier ~/.ssh
(le tilda signifie: directement sous votre homedir)

du coup vous affichez le contenu de la clé publique en faisant maintenant

Terminal window
# pensez à copier-coller, surtout
# si vous ne trouvez pas le ~ sur votre clavier
cat ~/.ssh/id_rsa.pub

et vous copiez tout le contenu (en incluant bien tout, même le ssh-rsa et tout)

ça ressemble à ceci

de nouveau, pour que vous ne soyez pas surpris voici en gros à quoi vous attendre comme session

ssh-copy-key.png
attachez la clé à votre compte github

maintenant vous allez sur github:

  1. dans le coin en haut à droite il y a votre icône
  2. qui ouvre un sous-menu dans lequel vous choisissez Settings
  3. dans la partie gauche de la page qui s’ouvre, cliquez ‘SSH and GPG Keys’
github-profile-1.png

et là vous pouvez ajouter votre clé publique SSH:

  1. mettez ce que vous voulez comme titre
  2. mais vous collez la clé publique dans la zone qui va bien
github-profile-2.png

🔧 Node.js (S2 uniquement)

installation de Node.js
Terminal window
# ceci fonctionne mais me donne une version trop ancienne
# conda install nodejs
conda install conda-forge::nodejs=22
pourquoi Node.js ?

Node.js est un environnement d’exécution JavaScript, qui permet de faire tourner du code JavaScript en dehors du navigateur. On va l’utiliser massivement dans le cours de S2, notamment pour faire tourner des serveurs web

cette installation vous donne accès aux commandes node et npm

vérification de l'installation
Terminal window
node --version
# et aussi
npm --version