Skip to main content

For developers working with Python, setting up and managing environments can sometimes lead to frustrating terminal errors. If you’ve encountered issues like the `python: command not found` error or struggled to create a virtual environment, this guide walks through resolving these common problems when using `pyenv`.

Following are the steps to get your environment back on track, specifically addressing Python version conflicts and virtual environment setup.

 

Common problem: command not found

Setting up a virtual environment with the command:

python -m venv aisearch

Instead of success, you receive:

pyenv: python: command not found

This issue occurs when Python isn’t recognised in your shell environment. In this case, `pyenv` is managing your Python installations, but your shell isn’t configured to recognise which version of Python to use.

To further complicate matters, running a specific version, such as `python3.12`, may result in:

zsh: command not found: python3.12

These issues stem from `pyenv` not being correctly set up or configured in your system’s environment.

 

The solution: configuring pyenv and Python

Step 1: Activate the correct Python version

First, check which Python versions are available via `pyenv`:

pyenv versions

To set a default Python version globally across your system:

pyenv global 3.12.7

Alternatively, to specify a version for a particular directory (e.g., your project folder):

pyenv local 3.12.7

Confirm the active version by running:

python --version

This step ensures that when you type `python`, your system uses the desired version installed by `pyenv`.

 

Step 2: Ensure pyenv is properly configured

To function correctly, `pyenv` must be integrated into your shell environment. Check that your shell’s configuration file (`~/.zshrc` or `~/.bashrc`) includes the following lines:

eval "$(pyenv init --path)"
eval "$(pyenv init -)"

After making changes, reload your shell configuration:

source ~/.zshrc  # Or source ~/.bashrc for bash users

Restarting your terminal session ensures these changes take effect.

 

Step 3: Recreate the virtual environment

Now that `pyenv` is configured and your desired Python version is active, retry creating the virtual environment:

python -m venv aisearch

This command should now execute successfully, creating the `aisearch` environment.

 

Step 4: Reinstall Python if needed

If errors persist, the Python version managed by `pyenv` might not be correctly installed. Reinstall the version:

pyenv install 3.12.7
pyenv global 3.12.7

This ensures a clean, functional installation.

 

Why this matters

Managing Python versions and environments is a fundamental skill for developers, particularly in collaborative projects. Issues like `python: command not found` can derail progress, especially when switching between projects with different dependencies.

Pyenv is a powerful tool for managing multiple Python versions, but its utility depends on proper configuration. Following these steps ensures you can seamlessly create virtual environments, stay productive, and avoid unnecessary downtime.

 

The wrap

When encountering issues with `pyenv` and Python commands, the solution often lies in properly configuring your shell and specifying the correct version. By ensuring `pyenv` is set up correctly, you can resolve conflicts, avoid errors, and focus on what matters: building your application.

Navigating these challenges, understanding tools like `pyenv` is essential to working efficiently in Python, whether you're building locally or deploying in complex environments.

Related articles

Andrew Fletcher13 Feb 2025
Deploying a Python project from UAT to production using Git
When deploying a Python project from a User Acceptance Testing (UAT) environment to Production, it’s essential to ensure that all dependencies and configurations remain consistent. Particularly in our situation where this was going to be the first deployment of AI semantic search functionality to...