|
|
--- |
|
|
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 |
|
|
|