# How to start a Python project in 2024

When I begin a new Python project, one of the first steps I take is to create a virtual environment. This is crucial for managing dependencies and ensuring that the libraries used in my project do not conflict with those of other projects or the system itself. Here’s how I set up a Python project using a virtual environment.

#### Step 1: Create a New Project Directory

I start by creating a new directory for my project and navigate into it:

```bash
mkdir my_project
cd my_project
```

#### Step 2: Initialize a Git Repository

Next, I initialize a git repository to manage version control:

```bash
git init
```

#### Step 3: Create the Virtual Environment

I use the `venv` module to create a virtual environment in my project directory, naming it after my project followed by `-venv` to maintain clarity:

```bash
python -m venv myproject-venv
```

This command creates a directory named `myproject-venv` where the virtual environment files are stored.

#### Step 4: Activate the Virtual Environment

Before installing any packages, I activate the virtual environment. The method differs slightly depending on the operating system:

* **On macOS and Linux:**
    
    ```bash
    source myproject-venv/bin/activate
    ```
    

* **On Windows:**
    
    ```bash
    .\myproject-venv\Scripts\activate
    ```
    

The prompt in the shell changes to show the name of the environment, indicating that it is now active.

#### Step 5: Install Required Packages

With the virtual environment activated, I install the necessary packages using `pip`:

```bash
pip install <package_name>
```

For instance, to install Flask:

```bash
pip install flask
```

#### Step 6: Save Dependencies

It’s good practice to keep track of the project's dependencies. I do this by creating a `requirements.txt` file:

```bash
pip freeze > requirements.txt
```

This file is crucial for replicating the environment on other machines or by other developers working on the project.

#### Step 7: Start Coding

Now, I can start coding my project. I create Python scripts in the project directory and run them using the Python interpreter that is part of my virtual environment.

#### Step 8: Deactivate the Virtual Environment

When I'm done working, I deactivate the virtual environment by running:

```bash
deactivate
```

This workflow helps me maintain a clean and organized working environment and makes it easier to manage project-specific dependencies. By following these steps, I ensure that each of my Python projects is set up correctly and ready for development.
