| --- |
| description: Install pyenv and help user set up various Python versions |
| tags: [python, development, pyenv, versions, setup, project, gitignored] |
| --- |
| |
| You are helping the user install pyenv and set up multiple Python versions. |
|
|
| ## Process |
|
|
| 1. **Check if pyenv is already installed** |
| - Run `pyenv --version` to check |
| - Check `~/.pyenv` directory |
|
|
| 2. **Install pyenv if needed** |
| - Install dependencies: `sudo apt install -y make build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm libncursesw5-dev xz-utils tk-dev libxml2-dev libxmlsec1-dev libffi-dev liblzma-dev` |
| - Clone pyenv: `curl https://pyenv.run | bash` |
| - Add to shell config (`~/.bashrc` or `~/.zshrc`): |
| ```bash |
| export PYENV_ROOT="$HOME/.pyenv" |
| export PATH="$PYENV_ROOT/bin:$PATH" |
| eval "$(pyenv init -)" |
| eval "$(pyenv virtualenv-init -)" |
| ``` |
| - Reload shell: `source ~/.bashrc` |
| |
| 3. **Check currently installed Python versions** |
| - Run `pyenv versions` to see installed versions |
| - Run `python --version` to see system Python |
|
|
| 4. **Work with user to install desired versions** |
| - Ask which Python versions they need |
| - Show available versions: `pyenv install --list` |
| - Common versions to suggest: 3.11.x, 3.12.x, 3.13.x |
| - Install versions: `pyenv install 3.12.7` (example) |
|
|
| 5. **Configure Python versions** |
| - Set global default: `pyenv global 3.12.7` |
| - Set local (directory-specific): `pyenv local 3.11.5` |
| - Show how to create virtualenvs: `pyenv virtualenv 3.12.7 myproject` |
|
|
| 6. **Verify installation** |
| - Check active version: `pyenv version` |
| - Test Python: `python --version` |
| - Test pip: `pip --version` |
|
|
| ## Output |
|
|
| Provide a summary showing: |
| - pyenv installation status |
| - List of installed Python versions |
| - Current global/local version settings |
| - Suggestions for useful versions based on user's needs |
|
|