# Environment Setup 23S ## Python The programming language used in this course is Python, with a version ≥3.10. This guide shows the steps for installing python 3.10 for Windows, macOS and Debian Linux. <details> <summary> Windows </summary> Download the installer here: * [Windows (64-bit)](https://www.python.org/ftp/python/3.10.7/python-3.10.7-amd64.exe) * [Windows (32-bit)](https://www.python.org/ftp/python/3.10.7/python-3.10.7.exe) 1. Open the downloaded Python installer. **Make sure to check the "Add Python 3.10 to PATH" mark!** <img src="https://i.imgur.com/qfydlwD.png" alt="Example Image" style="border-radius: 10px; box-shadow: 2px 2px 5px rgba(0, 0, 0, 0.3);"> 2. Click on "Install Now". This may take a while. <img src="https://i.imgur.com/Osksm4e.png" alt="Example Image" style="border-radius: 10px; box-shadow: 2px 2px 5px rgba(0, 0, 0, 0.3);"> 3. To finish the installation, click "Close". <img src="https://i.imgur.com/pViS2Ix.png" alt="Example Image" style="border-radius: 10px; box-shadow: 2px 2px 5px rgba(0, 0, 0, 0.3);"> ### Verify Installation To check if you successfully installed Python open up a new Terminal. Press the Windows key<kbd>![](http://i.stack.imgur.com/T0oPO.png)</kbd>, type `cmd` and hit enter. A new terminal window opens up which should look something like this: <img src="https://i.imgur.com/TJl9DoU.png" alt="Example Image" style="border-radius: 10px; box-shadow: 2px 2px 5px rgba(0, 0, 0, 0.3);"> Next, enter ``python --version`` in the terminal and hit enter. <img src="https://i.imgur.com/A3fHfcS.png" alt="Example Image" style="border-radius: 10px; box-shadow: 2px 2px 5px rgba(0, 0, 0, 0.3);"> You should see the currently installed version of Python. Any Python version higher then 3.10 is also fine. </details> <details> <summary> macOS </summary> You can install python using **either** the installer package <span style="color:red">**OR**</span> homebrew. #### Using the installer package (.pkg) Download the installer here * [macOS 11](https://www.python.org/ftp/python/3.10.7/python-3.10.7-macos11.pkg) 1. Open the downloaded installer package, click on "Continue" and accept the licence ![](https://i.imgur.com/N3Jl0Xt.png) 2. Click on "Install" ![](https://i.imgur.com/61IlQ5m.png) 3. Finish the installation ![](https://i.imgur.com/zssbEvy.png) #### Using homebrew [Homebrew](https://brew.sh) is a free software package manager that can be installed by pasting the following line into the terminal (To open a terminal, press <kbd>&#8984;</kbd>+<kbd>Space</kbd>, type `Terminal` and hit enter) >``/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"`` You might need to install Xcode command line tools first, by typing the following line into your terminal >``xcode-select --install`` You can install python 3.10 by typing >``brew update && brew install python@3.10`` **Optional**: You might want to add symbolik links like python->python3 and pip->pip3 to your Path by typing > ``echo -n 'export PATH=/opt/homebrew/opt/python@3.10/libexec/bin:$PATH' >> ~/.zshrc`` ### Verify installation Open a terminal (To open a terminal, press <kbd>&#8984;</kbd>+<kbd>Space</kbd> and type `Terminal`), type `python3 --version` and hit enter. ![](https://i.imgur.com/sorMa71.png) Any Python version higher then 3.10 is also fine. </details> <details> <summary> Debian </summary> If you are using a Linux-distribution based on Debian (like Ubuntu), type the following lines into a terminal (The keyboard sequence to open a terminal in Linux usually is <kbd>Ctrl</kbd>+<kbd>Alt</kbd>+<kbd>T</kbd>): ```bash sudo apt update && sudo apt upgrade -y sudo apt install software-properties-common -y sudo add-apt-repository ppa:deadsnakes/ppa sudo apt install python3.10 ``` ### Verify python installation ```bash python3.10 --version 3.10.7 ``` Any Python version higher then 3.10 is also fine. </details> ## Poetry [poetry](https://python-poetry.org/docs/#installation) is a tool for managing virtual environments, installing packages, and building package distributions. Install it using the official script: - Linux, macOS, WSL curl -sSL https://install.python-poetry.org | python3 - - Windows (Powershell) (Invoke-WebRequest -Uri https://install.python-poetry.org -UseBasicParsing).Content | python - Check if the installation worked: poetry -V Optional (if poetry can not be found): Add poetry to PATH <details> <summary>Linux / macOS</summary> macOS/Linux: Which shell do I have? echo $SHELL For **bash** echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc For **zsh** echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.zshrc Restart your terminal! </details> <details> <summary>Windows</summary> To add the directory containing `poetry` to the PATH: - Press the Windows key and search for **path**. - In the **System Properties** window, click on **Environment Variables...** (right lower corner). - Then, in the upper window (User variables), choose the **Path** variable and click **Edit..**. - Create a **New** Variable with: `%APPDATA%\Python\Scripts`. - Restart your terminal! After setting the path variable the `poetry install` and `poetry shell` commands should work properly. If you get the following error message after typing `poetry shell` ...\pypoetry\Cache\virtualenvs\ecg-n-ZS_Q7z-py3.10\Scripts\activate.ps1 cannot be loaded because running scripts is disabled on this system. You need to change the execution policy for your machine. This can be done with the following command: Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope LocalMachine After executing this command, enter 'Y' in the terminal to actually change the policy. </details> ## Visual Studio Code While you can use any text editor or IDE to write your python code, we encourage you to use [Visual Studio Code](https://code.visualstudio.com/). It provides syntax highlighting, useful keyboard shorcuts, debugging capabilities, and support for the tools you will use during this course. ### Recommended VS Code Extensions - [Python](https://marketplace.visualstudio.com/items?itemName=ms-python.python) (by Microsoft) - [Ruff](https://marketplace.visualstudio.com/items?itemName=charliermarsh.ruff) (by Charlie Marsh) - [Error Lens](https://marketplace.visualstudio.com/items?itemName=usernamehw.errorlens) (by Alexander) - [Black Formatter](https://marketplace.visualstudio.com/items?itemName=ms-python.black-formatter) (by Microsoft) - [Coverage Gutters](https://marketplace.visualstudio.com/items?itemName=ryanluker.vscode-coverage-gutters) (by ryanluker) - [Even Better TOML](https://marketplace.visualstudio.com/items?itemName=tamasfe.even-better-toml) (by tamasfe) ### Recommended VS Code Settings - Files: Auto Save -> onFocusChange - Python > Analysis: Type Checking Mode -> basic - Jupyter: Run Startup Commands -> `["%reload_ext autoreload", "%autoreload 2"]`