# CEU Accounts and Python Environment Setup

> Source: <https://gist.github.com/zoltanctoth/967a67dc374ff433bba7ef146be34089>
> Published: 2026-08-28 12:51:51+00:00

Welcome. Before teaching starts you need a working Python setup and additional software installed on your own laptop. This page walks you through it.

**Do this before the setup session.** Work through it on your own, and test
it. Whatever is still broken, We will help you fix during that session.

**Time needed:** about 45–60 minutes, most of it waiting for downloads.

**If you get stuck:** try to resolve it with AI first. If that does not work, write to
Ulrich Wohak [WohakU@ceu.edu](mailto:WohakU@ceu.edu) and you will get help during the session.

**Any operating system is fine.** Windows, macOS, and Linux are all fully supported.

You are installing four things and creating one account.

The terminal (also called the command line, Terminal, or PowerShell) is a window where you type commands instead of clicking buttons. Most of this page consists of commands you copy and paste into it. It is already on your computer — you do not install it.

If you are not familiar wirt the Terminal application, go through these Youtube videos first:

- Windows: [https://www.youtube.com/watch?v=4Gpls24j5Gw](https://www.youtube.com/watch?v=4Gpls24j5Gw)
- Mac: [https://www.youtube.com/watch?v=5XgBd6rjuDQ](https://www.youtube.com/watch?v=5XgBd6rjuDQ)

In this doc you will see instructions like this:

```
uv --version
```

That means: type (or paste) it into the terminal, press Enter, and read what comes back.

[`uv`](https://docs.astral.sh/uv/) is the tool that installs Python and every package a
course needs, at the exact versions that course was built against. It is the only tool you
need for this.

**Do not use `pip`, `conda`, or Anaconda for these courses.**
`uv` gives each project its own private set of packages, so they cannot collide.

Python is the language you will write in. **You do not install Python yourself.** `uv`
downloads the correct version per project.

Git records the history of a project: every change, who made it, and when. It runs locally on your laptop and lets you copy a project down from the internet, which is how you will get every course's materials.

GitHub is a website that hosts Git projects. Course materials live there, and you will hand
in some assignments through it. Git and GitHub are related but not the same: **Git** is the
program on your computer, **GitHub** is the website your computer talks to.

A **repository** (or *repo*) is one project's folder on GitHub. **Cloning** a repo means
downloading your own copy of it.

[Visual Studio Code](https://code.visualstudio.com/) is the editor you will write and run
code in. It also opens *notebooks* — documents that mix code, results, and text — which is
the format most course materials use.

You need one account:

1. **Sign up** at[github.com/signup](https://github.com/signup) . Pick a username you are
happy for an instructor to see.
If you already have a GitHub Account, feel free to use that one; no signup needed in this case
2. **Add your CEU email** as a second address, at[Settings → Emails](https://github.com/settings/emails) , and verify it. This is what links
your account to the university.
3. **Turn on two-factor authentication** at[Settings → Password and authentication](https://github.com/settings/security) . GitHub
requires it.**Save the recovery codes somewhere safe** — students lock themselves out of
their account mid-term every year, and recovery codes are the way back in.
4. **Apply for the Student Developer Pack** at[education.github.com/pack](https://education.github.com/pack)*as soon as you have your
CEU ID in hand* . It is free and gives you paid tooling for the duration of your studies.
This step can wait until you have the ID; nothing else depends on it.

Work down Part 2 and tick these off along the way:

-  `uv` installed —`uv --version` (in the terminal) prints a version number
-  Git installed — `git --version` (in the terminal) prints a version number
- VS Code installed and opens
- VS Code Python extension installed
- VS Code Jupyter extension installed
- GitHub account created
- CEU email added and verified on the account
- Two-factor authentication on, recovery codes saved
- Course repos cloned and synced (Part 3)
-  The check prints `SETUP OK` in all five folders (Part 3)
-  Student Developer Pack applied for — *once you have your CEU ID*

Follow **only** the section for your own system, then continue to "Both extensions" at the
end of this part.

**Open PowerShell.** Press the Start button, type `PowerShell`, and open **Windows
PowerShell**.

**1. Install uv**

```
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
```

**Close PowerShell and open it again** — this is required, the command will not be found
until you do. Then check:

```
uv --version
```

**2. Install Git**

```
winget install --id Git.Git -e --source winget
```

If `winget` is not available, download the installer from
[git-scm.com/downloads](https://git-scm.com/downloads) and accept the default options.
Close and reopen PowerShell, then check:

```
git --version
```

**3. Install VS Code**

```
winget install --id Microsoft.VisualStudioCode -e --source winget
```

Or download it from [code.visualstudio.com](https://code.visualstudio.com/Download).

**Open Terminal.** Press `Cmd + Space`, type `Terminal`, press Enter.

**1. Install uv**

```
curl -LsSf https://astral.sh/uv/install.sh | sh
```

**Close Terminal and open it again**, then check:

```
uv --version
```

**2. Install Git**

macOS ships with Git, but the first run may prompt you to install Apple's developer tools. Run:

```
git --version
```

If a dialog appears offering to install the command line developer tools, accept it and wait for it to finish. If nothing happens and you see a version number, Git is already there.

**3. Install VS Code**

Download from [code.visualstudio.com](https://code.visualstudio.com/Download), unzip it, and
drag **Visual Studio Code** into your **Applications** folder.

**1. Install uv**

```
curl -LsSf https://astral.sh/uv/install.sh | sh
```

Close and reopen the terminal, then check:

```
uv --version
```

**2. Install Git**

```
sudo apt-get update
sudo apt-get install -y git
git --version
```

**3. Install VS Code**

Download the `.deb` package from
[code.visualstudio.com](https://code.visualstudio.com/Download) and install it, or use your
distribution's software centre.

Open VS Code. Click the **Extensions** icon in the left sidebar (four small squares), then
search for and install:

- **Python** (published by Microsoft)
- **Jupyter** (published by Microsoft)

Both are needed to run course notebooks.

Cloning every course repo now is the real test. It is also the point of doing this early: if something is going to fail, it fails here, in front of someone who can fix it, rather than in week one.

Pick one place to keep all course materials.

**macOS / Linux:**

```
mkdir -p ~/ceu
cd ~/ceu
```

**Windows PowerShell:**

```
mkdir $HOME\ceu
cd $HOME\ceu
```

| Course | Clone command | 
|---|---|
| Coding 1 | `git clone https://github.com/ulrichwohak/Coding-1-Introduction-to-Python.git` | 
| Coding 2 | `git clone https://github.com/ulrichwohak/Coding-2-Python-for-Data-Analysis.git` | 
| Data Analysis 1 and 2 | `git clone https://github.com/gabors-data-analysis/da_case_studies.git` | 
| Data Visualization 1 | `git clone https://github.com/ulrichwohak/Python-Dataviz.git` | 
| Data Engineering 1 | `git clone https://github.com/zoltanctoth/ceu-cloud-class.git` | 

From inside your `ceu` folder, run the clone command for a course, then move into the folder
it created and set up the environment:

```
git clone https://github.com/ulrichwohak/Coding-1-Introduction-to-Python.git
cd Coding-1-Introduction-to-Python
uv sync
cd ..
```

`git clone` downloads the materials. `uv sync` reads that project's lock file and installs
the exact Python version and packages it needs — the first run takes a few minutes, later
ones are fast. `cd ..` returns you to the `ceu` folder, ready for the next course.

Repeat for all five rows.

Straight after `uv sync` finishes in a folder, run this:

``` python
uv run python -c "import sys; from importlib.metadata import distributions; print('Python', sys.version.split()[0]); print('Packages', len(list(distributions()))); print('SETUP OK')"
```

You should get three lines. In the Coding 1 folder they look like this:

```
Python 3.12.13
Packages 124
SETUP OK
```

The Python version and the package count are **different for each course**, and that is
exactly right: each course gets its own Python and its own packages, which is the whole
reason we use `uv`. Do not worry about the numbers — what matters is the last line.

**If you see `SETUP OK` in all five folders, your setup works. You are done.**

If a folder gives an error instead, note which folder and what the error says, and bring that to the setup session.

**`uv: command not found` or `'uv' is not recognized`**
You did not close and reopen the terminal after installing. Do that first — it fixes this
almost every time. If it persists, restart your computer.

**`git: command not found`**
Same cause, same fix: reopen the terminal.

**`uv sync` fails on one repo but works on others**
That repo has a problem, not your machine. Note which one, and move on.

**Permission denied when installing on Windows**
Right-click PowerShell and choose **Run as administrator**, then try again.

1. Try to resolve it with AI.
2. Still stuck? Write to Ulrich Wohak [WohakU@ceu.edu](mailto:WohakU@ceu.edu) .
3. Bring it to the setup session - that is what it is for.

Come to the session having tried with a specific error message, if any.
