You will find below the instructions to set up you computer for Le Wagon Data Science course
Please read them carefully and execute all commands in the following order. If you get stuck, don't hesitate to ask a teacher for help 🙋
Let's start 🚀
Have you signed up to GitHub? If not, do it right away.
👉 Upload a picture and put your name correctly on your GitHub account. This is important as we'll use an internal dashboard with your avatar. Please do this now, before you continue with this guide.
👉 Enable Two-Factor Authentication (2FA). GitHub will send you text messages with a code when you try to log in. This is important for security and also will soon be required in order to contribute code on GitHub.
Before we start, we need to check that the version of Windows installed on your computer is compatible with this setup instructions.
⚠️ Note on Windows 10 and securityThe Le Wagon bootcamp setup works on Windows 10. That said, we highly recommend to upgrade to Windows 11. Since October 14th, 2025, Microsoft has ended support for Windows 10, which means it will no longer receive security updates, potentially putting your machine at risk. For more details, read Microsoft's guide. In case your machine can't run Windows 11, consider switching to Ubuntu.
To be able to set up your computer, you need to have Windows 10 or Windows 11 installed.
To check your Windows version:
- Press
Windows+R - Type
winver - Press
Enter
✔️ If the first words of this window are Windows 11 you're good to go 👍
If the first words of this window are Windows 10, check the Version number:
-
✔️ If it says at least
2004, you are good to go 👍 -
❌ If it is below
2004, you need to run an update. -
How to install updates?
Open Windows Update:
- Press
Windows+R - Type
ms-settings:windowsupdate - Press
Enter - Click on
Check updates
✔️ If you see a green check mark and the message "You're up to date", you're good to go 👍
⚠️ If you have a red exclamation mark and the message "Update available", please install them and repeat the process until it says that you are up to date ➿❌ If you have an error message about Windows not being able to apply updates, please contact a teacher.
Activate Windows Update Service to fix Updates
Some antiviruses and pieces of software deactivate the Update service we need, resulting in the error you see. Let's fix that!
- Press
Windows+R - Type
services.msc - Press
Enter - Double Click
Windows Update Service - Set its
StartuptoAutomatic - Click on
Start - Click on
OkThen let's try updates again!
Check the version number again:
- Press
Windows+R - Type
winver - Press
Enter
✔️ If it says at least
2004, you are good to go 👍❌ If it is below
2004, contact a TA. - Press
We need to ensure that the Virtualization options are enabled in the BIOS of your computer.
For many computers, this is already the case. Let's check:
- Press
Windows+R - Type
taskmgr - Press
Enter - Click on the
Performancetab - Click on
CPU
✔️ If you see "Virtualization: Enabled", you're good to go 👍
❌ If the line is missing or if the virtualization is disabled, please contact a teacher before trying to activate the Virtualization
Activate Virtualization
We need to access the BIOS / UEFI of the computer to activate it.
- Press
Windows + R - Type
shutdown.exe /r /o /t 1 - Press
Enter - Wait for the computer to shutdown
- Click on
Troubleshoot - Click on
Advanced Options - Click on
UEFI Firmware Settings - Click on
Restart
You need to activate the virtualization option for your processor here:
- Most of the time, in the advanced settings, the CPU settings, or the Northbridge settings
- The option can be called differently according to your computer:
- Intel:
Intel VT-x,Intel Virtualization Technology,Virtualization Extensions,Vanderpool... - AMD:
SVM ModeorAMD-V
- Intel:
- Save the changes after activation and reboot the computer through the appropriate option
WSL is the development environment we are using to run Ubuntu. You can learn more about WSL here.
We will install WSL 2 and Ubuntu in one command through the Windows Command Prompt.
Ctrl + Shift + Enter key stroke to execute Windows Command Prompt with administrator privileges instead of just clicking on Okor pressing Enter.
- Press
Windows+R - Type
cmd - Press
Ctrl+Shift+Enter
A black terminal window will appear:
- Copy the following command (
Ctrl+C) - Paste it into the terminal window (
Ctrl+Vor by right-clicking in the window) - Run it by pressing
Enter
wsl --install✔️ If the command ran without any error, please restart your computer and continue below 👍
❌ If you encounter an error message (or if you see some text in red in the window), please contact a teacher.
Troubleshooting for Windows 10 (only if needed, check with a TA)
Ctrl + Shift + Enter key stroke to execute Windows PowerShell with administrator privileges instead of just clicking on Okor pressing Enter.
- Press
Windows+R - Type
powershell - Press
Ctrl+Shift+Enter
A blue terminal window will appear:
- Copy the following commands one by one (
Ctrl+C) - Paste them into the PowerShell window (
Ctrl+Vor by right-clicking in the window) - Run them by pressing
Enter
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linuxdism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestartdism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart✔️ If all three commands ran without any error, please restart your computer and continue below 👍
❌ If you encounter an error message (or if you see some text in red in the window), please contact a teacher
If you are running Windows 10, we will then upgrade WSL to version 2.
Once your computer has restarted, we need to download the WSL2 installer.
- Go to the download page
- Download "WSL2 Linux kernel update package"
- Open the file you've just downloaded
- Click
Next - Click
Finish
✔️ If didn't encounter any error message, you're good to go 👍
❌ If you encounter the error "This update only applies to machines with the Windows Subsystem for Linux", right click on the program and select uninstall; you shall be able to install it normally this time.
If you are running Windows 10, we will set WSL default version to 2.
Now that WSL 2 is installed, let's make it the default version:
- Press
Windows+R - Type
cmd - Press
Enter
In the window which appears, type:
wsl --set-default-version 2✔️ If you see "The operation completed successfully", you can close this terminal and continue to follow the instructions below 👍
❌ If the message you get is about Virtualization, please contact a teacher
Enable Virtual Machine Platform Windows feature
Follow the steps described here until you enable Virtual Machine Platform and Windows Subsystem for Linux
Enable Hyper-V Windows feature
Follow the steps described here until you enable the group Hyper-V
ℹ️ If you are running Windows 10 Home edition, Hyper-V feature is not available for your operating system. It's non-blocking and you can still continue to follow the instructions below 👌
After restarting you computer, you should see a terminal window saying WSL is resuming the Ubuntu installation process. When it's done, Ubuntu will be launched.
Troubleshooting for Windows 10 (only if needed, check with a TA)
If the Ubuntu installation did not resume, first try it again: launch Powershell or the Command Prompt again and run wsl --install again.
If you are running Windows 10, let's install Ubuntu throught the Microsoft Store:
- Click on
Start - Type
Microsoft Store - Click on
Microsoft Storein the list - Search for
Ubuntuin the search bar - Select version without any number, just plain "Ubuntu"
- Click on
Get
Uninstall wrong versions of Ubuntu
To uninstall a wrong version of Ubuntu, you just have to go to the Installed Program List of Windows 10:
- Press
Windows+R - Type
ms-settings:appsfeatures - Press
Enter
Find the software to uninstall and click on the uninstall button.
Once the installation is finished, the Get button becomes a Open button: click on it.
At first launch, you will be asked some information:
- Choose a username:
- one word
- lowercase
- no special characters
- for example:
lewagonor yourfirstname
- Choose a password
- Confirm your password
Enter.
- Press
Windows+R - Type
cmd - Press
Enter
Type the following command:
wsl -l -v✔️ If the version of Ubuntu WSL is 2, you are good to go 👍
❌ If the version of Ubuntu WSL is 1, we will need to convert it to version 2.
Convert Ubuntu WSL V1 to V2
In the Command Prompt window, type:
wsl --set-version Ubuntu 2✔️ After a few seconds, you should get the following message: The conversion is complete.
❌ If it does not work, we need to be sure that Ubuntu files are not compressed.
Check for Uncompressed Files
- Press
Windows+R - Type
%localappdata%\Packages - Press
Enter - Open the folder named
CanonicalGroupLimited.UbuntuonWindows... - Right Click on the
LocalStatefolder - Click on
Properties - Click on
Advanced - Make sure that the option
Compress contentis not ticked, then click onOk.
Apply changes to this folder only and try to convert the Ubuntu WSL version again.
❌ If the conversion still does not work, please contact a teacher.
You can close this terminal now.
Type this in the Ubuntu terminal:
whoamiIt should return the username you chose before.
❌ It if says root, contact a TA before continuing!
Let's install Visual Studio Code text editor.
- Go to Visual Studio Code download page.
- Click on "Windows" button
- Open the file you have just downloaded.
- Install it with few options:
When the installation is finished, launch VS Code.
To make VS Code interact properly with Ubuntu, let's install the Remote - WSL VS Code extension.
Open your Ubuntu terminal.
Copy-paste the following commands in the terminal:
code --install-extension ms-vscode-remote.remote-wslThen open VS Code from your terminal:
code .✔️ If you see WSL: Ubuntu in the bottom left corner of the VS Code window, you're good to go 👍
❌ Otherwise, please contact a teacher
ℹ️ The following instructions depend on your version of Windows.
If you are running Windows 11, the Windows Terminal is already installed and you can proceed to the next section 👇
If you are running Windows 10, let's install Windows Terminal, a real modern terminal.
Windows 10: Install Windows Terminal
- Click on
Start - Type
Microsoft Store - Click on
Microsoft Storein the list - Search for
Windows Terminalin the search bar - Select Windows Terminal"
- Click on
Install
Uninstall wrong version of Windows Terminal
To uninstall a wrong version of Windows Terminal, you just have to go to the Installed Program List of Windows 10:
- Press
Windows+R - Type
ms-settings:appsfeatures - Press
Enter
Find the software to uninstall and click on the uninstall button.
Once the installation is finished, the Install button becomes a Launch button: click on it.
Let's make Ubuntu the default terminal of your Windows Terminal application.
Press Ctrl + ,
It should open the terminal settings:
- Change the default profile to "Ubuntu"
- Click on "Save"
- Click on "Open JSON file"
You may see an orange circle rather than a penguin as the logo for Ubuntu.
We have circled in red the part you need to add:
First, let's ask Ubuntu to start directly inside your Ubuntu Home Directory instead of the Windows one.
- Place this line inside the { } block that contains "name": "Ubuntu" (like in the screenshot):
"commandline": "wsl.exe ~",Then, let's disable warnings for copy-pasting commands between Windows and Ubuntu:
- Locate the line "defaultProfile": "{2c4de342-...}"
- Add the following line after it:
"warning.multiLinePaste": false,You can save these changes by pressing Ctrl + S
✔️ Your Windows Terminal is now setup 👍
This terminal has tabs: you can choose to open a new terminal tab by clicking on the + next to the current one.
From now on, every time we will refer to the terminal or the console it will be this one. DO NOT use any other terminal anymore.
Let's install some useful extensions to VS Code.
code --install-extension ms-vscode.sublime-keybindings
code --install-extension emmanuelbeziat.vscode-great-icons
code --install-extension MS-vsliveshare.vsliveshare
code --install-extension ms-python.python
code --install-extension KevinRose.vsc-python-indent
code --install-extension ms-python.vscode-pylance
code --install-extension ms-toolsai.jupyter
code --install-extension alexcvzz.vscode-sqliteHere is a list of the extensions you are installing:
- Sublime Text Keymap and Settings Importer
- VSCode Great Icons
- Live Share
- Python
- Python Indent
- Pylance
- Jupyter
- SQLite
VS Code includes many powerful AI features, which are a great tool once you already know how to code.
That said, relying on AI too early can hide important concepts and make debugging harder to understand. Once you’re comfortable with the fundamentals, you’ll know when and how to use AI effectively — without letting it do the thinking for you.
For the start of the bootcamp, we’ll disable these features. At the right point in the course, we’ll reenable them so you can put them to good use.
In VS Code:
- Let's open the VS Code "Command Palette": type
Ctrl-Shift-P(Windows / Linux) orCmd-Shift-P(macOS). - This will open the Command Palette: a small text box at the top of your screen. Start typing
aifeaturesuntil you see "Chat: Learn How to Hide AI features". Click on it.
- This will open the settings, and will show you the option "Disable and hide built-in AI features ...". Tick the checkbox in front of that option.

Later, if you want to reenable the AI features, you can follow the same instructions to untick the checkbox.
The locale is a mechanism allowing to customize programs to your language and country.
Let's verify that the default locale is set to English, please type this in the Ubuntu terminal:
localeIf the output does not contain LANG=en_US.UTF-8, run the following command in a Ubuntu terminal to install the english locale:
sudo locale-gen en_US.UTF-8If after, you receive a warning (bash: warning: setlocale: LC_ALL: cannot change locale (en_US.utf-8)) in your terminal, please do the following:
Generate locale
Please, run this lines in your terminal.
sudo update-locale LANG=en_US.UTF8
sudo apt-get update
sudo apt-get install language-pack-en language-pack-en-base manpagesInstead of using the default bash shell, we will use zsh.
We will also use git, a command line software used for version control.
Let's install them, along with other useful tools:
- Open an Ubuntu terminal
- Copy and paste the following commands:
sudo apt updatesudo apt install -y curl git imagemagick jq unzip vim zsh treeThese commands will ask for your password: type it in.
Enter.
Let's now install GitHub official CLI (Command Line Interface). It's a software used to interact with your GitHub account via the command line.
In your terminal, copy-paste the following commands and type in your password if asked:
sudo apt remove -y gitsome # gh command can conflict with gitsome if already installed
curl -fsSL https://cli.github.com/packages/githubcli-archive-keyring.gpg | sudo dd of=/usr/share/keyrings/githubcli-archive-keyring.gpgecho "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/githubcli-archive-keyring.gpg] https://cli.github.com/packages stable main" | sudo tee /etc/apt/sources.list.d/github-cli.list > /dev/nullsudo apt updatesudo apt install -y ghTo check that gh has been successfully installed on your machine, you can run:
gh --version✔️ If you see gh version X.Y.Z (YYYY-MM-DD), you're good to go 👍
❌ Otherwise, please contact a teacher
Let's install the zsh plugin Oh My Zsh.
In a terminal execute the following command:
sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"If asked "Do you want to change your default shell to zsh?", press Y
At the end your terminal should look like this:
✔️ If it does, you can continue 👍
❌ Otherwise, please ask for a teacher
To be sure that you can interact with your browser installed on Windows from your Ubuntu terminal, we need to set it as your default browser there.
Run the following command and follow the instructions. The tool will prompt you to choose one of the browsers that are available on your system. You just need to type in the number that is shown in front of the browser.
bash -c "$(curl -s https://raw.githubusercontent.com/julesvanrie/wslsetbrowser/refs/heads/main/wslsetbrowser.sh)"Reset your terminal:
exec zshThen please make sure that the following command returns "Browser defined 👌":
[ -z "$BROWSER" ] && echo "ERROR: please define a BROWSER environment variable ⚠️" || echo "Browser defined 👌"If it does not, you can follow these instructions to set your default browser manually.
Do not hesitate to contact a teacher.
direnv is a shell extension. It makes it easy to deal with per project environment variables. This will be useful in order to customize the behavior of your code.
sudo apt-get update; sudo apt-get install direnv
echo 'eval "$(direnv hook zsh)"' >> ~/.zshrcCLI is the acronym of Command-line Interface.
In this section, we will use GitHub CLI to interact with GitHub directly from the terminal.
It should already be installed on your computer from the previous commands.
We will use the GitHub CLI (gh) to connect to GitHub using SSH, a protocol to log in using SSH keys instead of the well known username/password pair.
First in order to login, copy-paste the following command in your terminal:
email
gh auth login -s 'user:email' -w --git-protocol sshgh will ask you few questions:
-
Generate a new SSH key to add to your GitHub account?PressEnterto ask gh to generate the SSH keys for you.If you already have SSH keys, you will see instead
Upload your SSH public key to your GitHub account?With the arrows, select your public key file path and pressEnter. -
Enter a passphrase for your new SSH key (Optional). Type something you want and that you'll remember. It's a password to protect your private key stored on your hard drive. Then pressEnter. -
Title for your SSH key. You can leave it at the proposed "GitHub CLI", pressEnter.
You will then get the following output:
! First copy your one-time code: 0EF9-D015
- Press Enter to open github.com in your browser...Select and copy the code (0EF9-D015 in the example), then press Enter.
Your browser will open and ask you to authorize GitHub CLI to use your GitHub account. Accept and wait a bit.
Come back to the terminal, press Enter again, and that's it.
To check that you are properly connected, type:
gh auth status✔️ If you get Logged in to github.com as <YOUR USERNAME> , then all good 👍
❌ If not, contact a teacher.
Install the gcloud CLI to communicate with Google Cloud Platform through your terminal:
echo "deb [signed-by=/usr/share/keyrings/cloud.google.gpg] https://packages.cloud.google.com/apt cloud-sdk main" | sudo tee -a /etc/apt/sources.list.d/google-cloud-sdk.list
sudo apt-get install apt-transport-https ca-certificates gnupg
curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key --keyring /usr/share/keyrings/cloud.google.gpg add -
sudo apt-get update && sudo apt-get install google-cloud-sdk
sudo apt-get install google-cloud-sdk-app-engine-pythonHackers love to refine and polish their shell and tools. We'll start with a great default configuration provided by Le Wagon, stored on GitHub.
First, let's do a quick check. Open your terminal and run the following command:
export GITHUB_USERNAME=`gh api user | jq -r '.login'`
echo $GITHUB_USERNAMEYou should see your GitHub username printed. If it's not the case, stop here and ask for help.
There seems to be a problem with the previous step (gh auth).
There are three options, choose one:
I did not attend the Web Dev or Data Science & AI bootcamp at Le Wagon
As your configuration is personal, you need your own repository storing it, so you'll need to fork it to your GitHub account.
Forking means that it will create a new repo in your GitHub account, identical to the original one. You'll have a new repository on your GitHub account, your_github_username/dotfiles. We need to fork because each of you will need to put specific information (e.g. your name) in those
files.
Lets' run this command to fork the repo, and clone it on your laptop:
mkdir -p ~/code/$GITHUB_USERNAME && cd $_
gh repo fork lewagon/dotfiles --cloneI already attended a Le Wagon coding bootcamp (Web Development or Data Science & AI) but I have a new laptop
This means that you already forked the GitHub repo lewagon/dotfiles, but at that time the configuration was maybe not ready for the current Data Science & AI bootcamp. Let's update it. Ask a TA to join you for the nex steps.
First, clone your fork on this machine:
mkdir -p ~/code/$GITHUB_USERNAME && cd $_
gh repo clone $GITHUB_USERNAME/dotfilesOpen your terminal and go to your dotfiles project:
cd ~/code/$GITHUB_USERNAME/dotfilesTime to merge the changes from lewagon/dotfiles into yours:
-
Commit your current version of your dotfiles:
git add . git status # Check what will be committed git commit -m "Version prior to new setup"
-
Let's bring in the changes from upstream:
git merge upstream/master -
Check that you're not in
MERGINGstate. If you are, resolve any conflicts. -
Do a
git diff HEAD~1 HEADto check what changed. -
If nothing seems out of the ordinary, continue
Too many conflicts?
Let's just take over the current version from lewagon/dotfiles.
First abort the merge: git merge --abort.
Run code .
In VS Code, open the zshrc file. Replace its content with the newest version. Save to disk.
Still in VS Code, open the zprofile file. Replace its content with the newest version. Save to disk.
Back in the terminal, run a git diff and check if this didn't remove any personal configuration setting that you wanted to keep.
Time to commit your changes and push them.
git add .
git commit -m "Update for Data Science bootcamp"
git push origin masterI already did the setup of a Le Wagon coding bootcamp (WebDev or Data Science & AI) on the same laptop before
This means that you already forked and cloned the GitHub repo lewagon/dotfiles, but at that time the configuration was maybe not ready for the current Data Science & AI bootcamp. Let's update it. Ask a TA to join you for the nex steps.
Open your terminal and go to your dotfiles project:
cd ~/code/$GITHUB_USERNAME/dotfilesTime to merge the changes from lewagon/dotfiles into yours:
-
Commit your current version of your dotfiles:
git add . git status # Check what will be committed git commit -m "Version prior to new setup"
-
Let's bring in the changes from upstream:
git merge upstream/master -
Check that you're not in
MERGINGstate. If you are, resolve any conflicts. -
Do a
git diff HEAD~1 HEADto check what changed. -
If nothing seems out of the ordinary, continue
Too many conflicts?
Let's just take over the current version from lewagon/dotfiles.
First abort the merge: git merge --abort.
Run code .
In VS Code, open the zshrc file. Replace its content with the newest version. Save to disk.
Still in VS Code, open the zprofile file. Replace its content with the newest version. Save to disk.
Back in the terminal, run a git diff and check if this didn't remove any personal configuration setting that you wanted to keep.
Time to commit your changes and push them.
git add .
git commit -m "Update for Data Science bootcamp"
git push origin masterIt's time to run the dotfiles installer:
cd ~/code/$GITHUB_USERNAME/dotfiles && zsh install.shCheck the emails registered with your GitHub Account. You'll need to pick one at the next step:
gh api user/emails | jq -r '.[].email'Run the git installer:
cd ~/code/$GITHUB_USERNAME/dotfiles && zsh git_setup.sh☝️ This will prompt you for your name (FirstName LastName) and your email.
:warning: You need to put one of the emails listed above thanks to the previous gh api ... command. If you don't do that, Kitt won't be able to track your progress. 💡 Select the @users.noreply.github.com address if you don't want your email to appear in public repositories you may contribute to.
Please now quit all your opened terminal windows.
You don't want to be asked for your passphrase every time you communicate with a distant repository. So, you need to add the plugin ssh-agent to oh my zsh:
First, open the .zshrc file:
code ~/.zshrcThen:
- Spot the line starting with
plugins= - Add
ssh-agentat the end of the plugins list
✔️ Save the .zshrc file with Ctrl + S and close your text editor.
Installing Python (with pyenv)
As we are using pyenv to install and manage our Python version, we need to uninstall conda, another package manager you may have on your machine if you previously installed Anaconda. Thus, we are preventing any possible Python version issue later.
Check if you have conda installed on your machine:
conda listIf you have zsh: command not found: conda, you can skip the uninstall of conda and jump to the Install pyenv section.
conda uninstall instructions
- Install the Anaconda-Clean package from your terminal and run the cleaning
conda install anaconda-clean
anaconda-clean --yes- Remove every Anaconda directories
rm -rf ~/anaconda2
rm -rf ~/anaconda3
rm -rf ~/.anaconda_backup- Remove Anaconda path from your
.bash_profile- Open the file with
code ~/.bash_profile - If the file opens find the line matching the following pattern
export PATH="/path/to/anaconda3/bin:$PATH"and delete the line
- Open the file with
- Restart your terminal with
exec zsh - Remove Anaconda initialization from your
.zshrc:- Open the file with
code ~/.zshrc - Remove the code lines starting from
>>> conda initialize >>>to<<< conda initialize <<<
- Open the file with
Ubuntu comes with an outdated version of Python that we don't want to use. You might already have installed Anaconda or something else to tinker with Python and Data Science packages. All of this does not really matter as we are going to do a professional setup of Python where you'll be able to switch which version you want to use whenever you type python in the terminal.
First let's install pyenv with the following Terminal command:
git clone https://github.com/pyenv/pyenv.git ~/.pyenv
exec zshLet's install some dependencies needed to build Python from pyenv:
sudo apt-get update; sudo apt-get install make build-essential libssl-dev zlib1g-dev \
libbz2-dev libreadline-dev sqlite3 libsqlite3-dev wget curl llvm \
libncursesw5-dev xz-utils tk-dev libxml2-dev libxmlsec1-dev libffi-dev liblzma-dev \
python3-devLet's install the latest stable version of Python supported by Le Wagon's curriculum:
pyenv install 3.12.9This command might take a while, this is perfectly normal. Don't hesitate to help other students seated next to you!
🛠 Troubleshooting `pyenv` not found
If you encounter an error Command 'pyenv' not found: execute the following line:
source ~/.zprofileThen try to install Python again:
pyenv install 3.12.9If pyenv is still not found, contact a teacher.
OK once this command is complete, we are going to tell the system to use this version of Python by default. This is done with:
pyenv global 3.12.9
exec zshTo check if this worked, run python --version. If you see 3.12.9, perfect! If not, ask a TA that will help you debug the problem thanks to pyenv versions and type -a python (python should be using the .pyenv/shims version first).
Before we start installing relevant Python packages, we will isolate the setup for the Bootcamp into a dedicated virtual environment. We will use a pyenv plugin called pyenv-virtualenv.
First let's install this plugin:
git clone https://github.com/pyenv/pyenv-virtualenv.git $(pyenv root)/plugins/pyenv-virtualenv
exec zshLet's create the virtual environment we are going to use during the whole bootcamp:
pyenv virtualenv 3.12.9 lewagonLet's now set the virtual environment with:
pyenv global lewagonGreat! Anytime we'll install Python package, we'll do it in that environment.
Now that we have a pristine lewagon virtual environment, it's time to install some packages in it.
First, let's upgrade pip, the tool to install Python Packages from pypi.org. In the latest terminal where the virtualenv lewagon is activated, run:
pip install --upgrade pipThen let's install some packages for the first weeks of the program:
pip install -r https://raw.githubusercontent.com/lewagon/data-setup/master/specs/releases/linux.txtLet's improve the display of the details disclosure elements in your notebooks.
Run the following lines to create a custom.css stylesheet in your Jupyter config directory:
LOCATION=$(jupyter --config-dir)/custom
SOURCE=https://raw.githubusercontent.com/lewagon/data-setup/refs/heads/master/specs/jupyter/custom.css
mkdir -p $LOCATION
curl $SOURCE > $LOCATION/custom.cssFirst, let's configure your default browser again. We did this before, but when we installed the dotfiles it got removed. Not a problem, run this command to configure the settings again:
grep -E "export (GH_)*BROWSER" ~/.zshrc.backup >> ~/.zshrcThen, restart your terminal with:
exec zshLet's generate the configuration file for Jupyter Notebook...
jupyter notebook --generate-configWe will now edit the generated Jupyter configuration file:
sed -i.backup 's/# c.ServerApp.use_redirect_file = True/c.ServerApp.use_redirect_file = False/' ~/.jupyter/jupyter_notebook_config.pyLet's try to run Jupyter:
jupyter notebookThis command should have opened a Jupyter page in your browser:
If it is not the case, please call a TA.
To stop the Jupyter server in the terminal, press Ctrl + C, enter y, then press Enter.
Let's reset your terminal:
cd ~/code && exec zshCheck your Python version with the following commands:
zsh -c "$(curl -fsSL https://raw.githubusercontent.com/lewagon/data-setup/master/checks/python_checker.sh)" 3.12.9Run the following command to check if you successfully installed the required packages:
zsh -c "$(curl -fsSL https://raw.githubusercontent.com/lewagon/data-setup/master/checks/pip_check.sh)"Now run the following command to check if you can load these packages:
python -c "$(curl -fsSL https://raw.githubusercontent.com/lewagon/data-setup/master/checks/pip_check.py)"Make sure you can run Jupyter:
jupyter notebookYour web browser should open on a jupyter window:
Click on New and in the dropdown menu select Python 3 (ipykernel):
A tab should open on a new notebook:
Make sure that you are running the correct python version in the notebook. Open a cell and run:
import sys; sys.versionIt should output 3.12.9 followed by some more details. If not, check with a TA.
You can close your web browser then terminate the jupyter server with CTRL + C.
Here you have it! A complete python virtual env with all the third-party packages you'll need for the whole bootcamp.
Download and install DBeaver, a free and open source powerful tool to connect to any database, explore the schema and even run SQL queries.
We need an easy way to transfer files from Windows to Ubuntu and vice versa.
In order to do that, let's create shortcuts to Ubuntu directories in the Windows File Explorer:
- Open the Windows File Explorer (or use the shortcut
WIN+E) - In the Address Bar, enter
\\wsl$\(or\\wsl$\Ubuntuif it does not work) - You now have acces to the Ubuntu file system
- Dive into the Ubuntu file system in order to look for directories of interest
- Drag the desired folders into the Address Bar in order to create shortcuts
Another option to move files around is to open the Windows File Explorer from the Ubuntu terminal:
- Open an Ubuntu terminal
- Go to the directory you wish to explore
- Run the
explorer.exe .command (alternatively, usewslview .) - If you get an input output error message, run
wsl --shutdownin a Windows PowerShell and reopen an Ubuntu terminal
You might want to figure out the exact location of a Windows directory in the Ubuntu file system, or the other way around.
In order to convert a Windows path to and from an Ubuntu path:
- Open an Ubuntu terminal
- Use the
wslpath "C:\Program Files"command in order to translate a Windows path into an Ubuntu path - Use the
wslpath -w "/home"command in order to translate an Ubuntu path into a Windows path - In particular, the
wslpath -w $(pwd)command returns the Windows path of the current Ubuntu directory
You are going to use most of the apps you've installed today really often. Let's pin them to your taskbar so that they are just one click away!
To pin an app to your taskbar, launch the app, right-click on the icon in the taskbar to bring up the context menu and choose "Pin to taskbar".
You must pin:
- Your terminal
- Your file explorer
- VS Code
- Your Internet browser
- Slack
Some Python packages require a compiler to function properly. Let's install one:
Docker is an open platform for developing, shipping, and running applications.
if you already have Docker installed on your machine please update with the latest version
Go to Install Docker Desktop on Windows.
Download and install Docker Desktop.
If you have an Intel or AMD processor, choose the first option ending with "x86_64".
Not sure which processor you have?
Most probably you'll need the x86_64version, that is if you have an Intel or AMD processor.
If you don't know which processor your machine has, run arch in your Ubuntu terminal. Check its output:
x86_64: choose the first option "x86_64"aarch64: choose the second option "Arm"
Once done, start Docker.
You should be able to run in a Ubuntu terminal:
docker run hello-worldThe following message should print:
Permission denied?
Run the following commands one by one:
sudo groupadd docker
sudo usermod -aG docker $USER
newgrp dockerTry docker run hello-world again.
Seeing this error?
WARNING: Error loading config file: /home/user/.docker/config.json - stat /home/user/.docker/config.json: permission denied`?
Run the following command:
sudo rm -rf ~/.docker/Try docker run hello-world again.
GCP is a cloud solution that you are going to use in order to deploy your Machine Learning-based products to production.
🚨 If you are a student of the Part-Time Bootcamp, SKIP THIS SECTION FOR NOW! GCP offers $300 worth of free credits for a duration of 3 months. You do not want to activate your GCP account too soon 🙅♂️
- Go to Google Cloud and create an account if you do not already have one
- In the Cloud Console, on the project list, select or create a Cloud project
- Give it a name such as
Wagon Bootcampfor example - ❗ Check that the field Location is set to No organization ❗
- Notice the
IDautomatically created for the project, e.g.wagon-bootcamp-123456
In order to facilitate the following of the instructions during the bootcamp, open your GCP account preferences:
https://myaccount.google.com/language
If the preferred language is not:
- English
- United States
Then switch the language to english:
- Click on the edit pen logo
- Select English
- Select United States
- Click on Select
You will now link your account to your credit card. This step is required or you will not be able to use the services provided by GCP. Do not worry, you will be able to consume most GCP services through free credits throughout the bootcamp.
- Click on Billing
- Click on MANAGE BILLING ACCOUNTS
- Click on ADD BILLING ACCOUNT
- Give a name to your billing account, e.g.
My Billing Account - Click on "I have read..." and agree the to the terms of service
- Click on CONTINUE
- Select your account type:
Individual - Fill your name and address
You should see that you have a free credit of "$300 credits over the next 90days".
- Click on card details
- Enter your credit card info
- Click on START MY FREE TRIAL
Once this is done, verify that your billing account is linked to your GCP project.
- Select your project
- Go to Billing
- Select LINK A BILLING ACCOUNT
- Select
My Billing Account - Click on SET ACCOUNT
You should now see:
Free trial status: $300 credit and 91 days remaining - with a full account, you'll get unlimited access to all of Google Cloud Platform.
👉 If you do not own a credit card 👈
If you do not own a credit card, an alternative is to setup a Revolut account. Revolut is a financial app that will allow you to create a virtual credit card linked to your mobile phone billing account.
Skip this step if you own a credit card and use your credit card for the setup.
Download the Revolut app, or go to revolut and follow the steps to download the app (enter your mobile phone number and click on Get Started).
- Open the Revolut app
- Enter your mobile phone number
- Enter the verification code received by SMS
- The app will ask for your country, address, first and last name, date of birth, email address
- The app will also ask for a selfie and request your profession
- The app will require a photo of your identification card or passport
Once this is done, select the standard (free) plan. No need to add the card to Apple pay, or ask for a the delivery of a physical card, or add money securely.
You now have a virtual card which we will use for the GCP setup.
In the main view of the Revolut the app
- Click on Ready to use
- Click on the card
- Click on Show card details
- Note down the references of the virtual credit card and use them in order to proceed with the GCP setup
👉 If you receive an email from Google saying "Urgent: your billing account XXXXXX-XXXXXX-XXXXXX has been suspended" 👈
This may happen especially in case you just setup a Revolut account.
- Click on PROCEED TO VERIFICATION
- You will be asked to send a picture of your credit card (only the last 4 digits, no other info)
- In case you used Revolut, you can send a screenshot of your virtual credit card (do not forget to remove the validity date from the screenshot)
- Explain that you are attending the Le Wagon bootcamp, do not own a credit card, and have just created a Revolut account in order to setup GCP for the bootcamp using a virtual credit card
You may receive a validation or requests for more information within 30 minutes.
Once the verification goes through, you should receive an email stating that "Your Google Cloud Platform billing account XXXXXX-XXXXXX-XXXXXX has been fully reinstated and is ready to use.".
- Make sure that billing is enabled for your Google Cloud project
ℹ️ You have a $300 credit to use for Google Cloud resources, which will be more than enough for the bootcamp.
- Enable the BigQuery and Compute Engine APIs (This step may take a few minutes)
- Authenticate the
gcloudCLI with the google account you used for GCP
gcloud auth login --no-launch-browser- Login to your Google account on the new tab opened in your web browser
- List your active account and check your email address you used for GCP is present
gcloud auth list- Set your current project (replace
PROJECT_IDwith theIDof your project, e.g.wagon-bootcamp-123456)
gcloud config set project PROJECT_ID- List your active account and current project and check your project is present
gcloud config listNow that you have created a GCP account and a project (identified by its PROJECT_ID), we are going to configure the actions (API calls) that you want to allow your code to perform.
🤔 Why do we need a service account key ?
You have created a GCP account linked to your credit card. Your account will be billed according to your usage of the resources of the Google Cloud Platform. The billing will occur if you consume anything once the free trial is over, or if you exceed the amount of spending allowed during the free trial.
In your GCP account, you have created a single GCP project, identified by its PROJECT_ID. The GCP projects allow you to organize and monitor more precisely how you consume the GCP resources. For the purpose of the bootcamp, we are only going to create a single project.
Now, we need a way to tell which resources within a GCP project our code will be allowed to consume. Our code consumes GCP resources through API calls.
Since API calls are not free, it is important to define with caution how our code will be allowed to use them. During the bootcamp this will not be an issue and we are going to allow our code to use all the API of GCP without any restrictions.
In the same way that there may be several projects associated with a GCP account, a project may be composed of several services (any bundle of code, whatever its form factor, that requires the usage of GCP API calls in order to fulfill its purpose).
GCP requires that the services of the projects using API calls are registered on the platform and their credentials configured through the access granted to a service account.
For the moment we will only need to use a single service and will create the corresponding service account.
Since the service account is what identifies your application (and therefore your GCP billing account and ultimately your credit card), you are going to want to be cautious with the next steps.
Navigate to the GCP service accounts page at this link.
- Select your project in the list of recent projects if asked to.
- If not asked, make sure the right project is selected in the Project selecter list at the top of the page.
An alternate way to navigate to the Service Accounts page is from the following:
-
Click on CREATE SERVICE ACCOUNT.
-
Give your service account a name, an id and a description, and click on CREATE AND CONTINUE.
-
Click on Select a role and choose
BasicthenOwner, which gives the service account full access to all resources of your GCP project. -
Click on the blue DONE button at the bottom of this window. We don't need to worry about the section Grant your users access to this service account.
-
On the service accounts page, click on the email address of the newly created service account.
-
Click on the KEYS tab at the top of the page.
-
Click on ADD KEY then Create new key.
-
Select JSON and click on CREATE.
-
The browser has now saved the service account json file 🔑 in your downloads directory (it is named according to your service account name, something like
le-wagon-data-123456789abc.json).
We will now move the service account json file from your Windows disk to the Ubuntu disk. This will allow the development tools in Ubuntu to access to the resources of your GCP account.
First, let's create a directory in which we will store the file.
👉 Open an Ubuntu terminal and run the following commands
🚨 replace GITHUB_NICKNAME by your GitHub nickname
cd ~/code/GITHUB_NICKNAME
ls -laIf the command does not show the dotfiles directory, ask for a TA 🙏
Otherwise, you can proceed with the setup:
mkdir gcpWe will now move the service account json file to the gcp directory we just created.
Open a Windows File Explorer (Win + E) and locate the gcp directory in the Ubuntu file system.
You can either:
- Use the Quick access link that we created earlier
- manually type the location of the
gcpdirectory in the Ubuntu file system in the address bar:
\\wsl$\Ubuntu\home\UBUNTU_USERNAME\code\GITHUB_NICKNAME
🚨 if you opt for the second option:
- replace
UBUNTU_USERNAMEby the username that you choose during the Ubuntu setup - replace
GITHUB_NICKNAMEby your GitHub nickname
Once you have located the gcp directory in the Windows File Explorer, move the service account json file that you downloaded inside of it.
The file should now be visible from Ubuntu file system.
👉 Open an Ubuntu terminal and verify that the service account json file has been moved
cd gcp
ls -laIf you do not see the service account json file listed in the gcp directory, ask for a TA 🙏
We will now store the path to your service account json file in an environment variable.
🚨 in the following command, replace:
UBUNTU_USERNAMEby the username that you choose during the Ubuntu setupGITHUB_NICKNAMEby your GitHub nicknameSERVICE_ACCOUNT_JSON_FILE_CONTAINING_YOUR_SECRET_KEY.jsonby the name of your service account json file
echo 'export GOOGLE_APPLICATION_CREDENTIALS=/home/UBUNTU_USERNAME/code/GITHUB_NICKNAME/gcp/SERVICE_ACCOUNT_JSON_FILE_CONTAINING_YOUR_SECRET_KEY.json' >> ~/.zshrcNote: every time you run this command, it will add this line to your zshrc file regardless of whether you already have it. If you made a mistake and need to fix it, preferably open the file and edit the line!
You can do so by running
code ~/.zshrcin the Terminal! 😄
ℹ️ How to find the absolute path of a file?
You can drag and drop the file in your terminal.Restart your terminal and run:
echo $GOOGLE_APPLICATION_CREDENTIALSThe ouptut should be the following:
/some/absolute/path/to/your/gcp/SERVICE_ACCOUNT_JSON_FILE_CONTAINING_YOUR_SECRET_KEY.jsonNow let's verify that the path to your service account json file is correct:
cat $(echo $GOOGLE_APPLICATION_CREDENTIALS)👉 This command should display the content of your service account json file. If it does not, ask for a TA 🙏
Your code and utilities are now able to access the resources of your GCP account.
Let's proceed with the final steps of configuration...
- List the service accounts associated to your active account and current project
gcloud iam service-accounts list- Retrieve the service account email address, e.g.
SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com - List the roles of the service account from the cli (replace PROJECT_ID and SERVICE_ACCOUNT_EMAIL)
gcloud projects get-iam-policy PROJECT_ID \
--flatten="bindings[].members" \
--format='table(bindings.role)' \
--filter="bindings.members:SERVICE_ACCOUNT_EMAIL"- You should see that your service account has a role of
roles/owner
Troubleshooting
AccessDeniedException: 403 The project to be billed is associated with an absent billing account.- Make sure that billing is enabled for your Google Cloud Platform project https://cloud.google.com/billing/docs/how-to/modify-project
🏁 You are done with the GCP setup!
You should have received an email from Le Wagon inviting you to sign up on Kitt (our learning platform).
Then you should receive an additional invitation from Slack, inviting you to the Le Wagon Alumni slack community (where you'll chat with your buddies and all the previous alumni). Click on Join and complete the information.
If you haven't, please contact your teaching team.
Slack is a communication platform pretty popular in the tech industry.
Download the Slack app and install it.
Launch the app and sign in to lewagon-alumni organization.
Make sure you upload a profile picture 👇
The idea is that you'll have Slack open all day, so that you can share useful links / ask for help / decide where to go to lunch / etc.
To ensure that everything is working fine for video calls, let's test your camera and microphone:
- Open the Slack app
- Click your profile picture in the top right.
- Select
Preferencesfrom the menu. - Click
Audio & videoin the left-side column. - Below
Troubleshooting, clickRun an audio, video and screensharing test. The test will open in a new window. - Check that your preferred speaker, microphone and camera devices appear in the drop-down menus, then click
Start test.
✔️ When the test is finished, you should see green "Succeed" messages at least for your microphone and camera. 👍
❌ If not, contact a teacher.
You can also install Slack app on your phone and sign in lewagon-alumni!
If you are done with your setup, please ask around if some classmates need some help with theirs (macOS, Linux, Windows). We will have our first lectures at 2pm and will talk about the Setup you just did + onboard you on Kitt.
If you don't have a lot of experience with git and GitHub, please (re-)watch this workshop (1.25 playback speed is fine).
If you do, then you can wait for the first lecture working on this Tic-Tac-Toe Kata

































