| # Python Environment Manager Identification | |
| You are helping the user identify their system Python installation and all Python environment managers in use. | |
| ## Your tasks: | |
| 1. **Identify system Python:** | |
| - System Python version: `python3 --version` | |
| - System Python location: `which python3` | |
| - Check if python (unversioned) exists: `which python` | |
| - Python paths: `python3 -c "import sys; print(sys.executable)"` | |
| - List all Python installations: `which -a python python3 python2` | |
| 2. **Check for pyenv:** | |
| - Check if installed: `which pyenv` | |
| - If installed: | |
| - Version: `pyenv --version` | |
| - Root directory: `echo $PYENV_ROOT` or default `~/.pyenv` | |
| - Installed Python versions: `pyenv versions` | |
| - Global Python: `pyenv global` | |
| - Local Python (if set): `pyenv local` | |
| - Check if properly initialized in shell: `grep -r "pyenv init" ~/.bashrc ~/.zshrc ~/.profile 2>/dev/null` | |
| 3. **Check for Conda/Miniconda/Anaconda:** | |
| - Check if conda is installed: `which conda` | |
| - If installed: | |
| - Version: `conda --version` | |
| - Conda info: `conda info` | |
| - Base environment location: `echo $CONDA_PREFIX` | |
| - List environments: `conda env list` | |
| - Current environment: `echo $CONDA_DEFAULT_ENV` | |
| - Check initialization: `grep -r "conda initialize" ~/.bashrc ~/.zshrc ~/.profile 2>/dev/null` | |
| 4. **Check for Mamba:** | |
| - Check if installed: `which mamba` | |
| - If installed: | |
| - Version: `mamba --version` | |
| - Environments: `mamba env list` | |
| 5. **Check for Poetry:** | |
| - Check if installed: `which poetry` | |
| - If installed: | |
| - Version: `poetry --version` | |
| - Config location: `poetry config --list` | |
| - Virtual environment settings: `poetry config virtualenvs.path` | |
| 6. **Check for pipenv:** | |
| - Check if installed: `which pipenv` | |
| - If installed: | |
| - Version: `pipenv --version` | |
| - Environment variable settings: `echo $PIPENV_VENV_IN_PROJECT` | |
| 7. **Check for virtualenv/venv:** | |
| - Check if virtualenv is installed: `which virtualenv` | |
| - Check for virtualenvwrapper: `which virtualenvwrapper.sh` | |
| - If virtualenvwrapper found: | |
| - Check workon home: `echo $WORKON_HOME` | |
| - List environments: `lsvirtualenv` (if available) | |
| 8. **Check for other Python version managers:** | |
| - asdf with Python plugin: `which asdf` and `asdf plugin list | grep python` | |
| - pythonz: `which pythonz` | |
| - Check for manual Python installations in common locations: | |
| - `/usr/local/bin/python*` | |
| - `/opt/python*` | |
| - `~/.local/bin/python*` | |
| 9. **Analyze pip installations:** | |
| - System pip: `pip3 --version` | |
| - Pip location: `which pip3 pip` | |
| - User site packages: `python3 -m site --user-site` | |
| - List globally installed packages: `pip3 list --user` | |
| 10. **Report summary:** | |
| - System Python version and location | |
| - All detected environment managers with versions | |
| - Which manager is currently active (if any) | |
| - Any conflicts or issues detected (e.g., multiple managers competing) | |
| - Recommendations: | |
| - If no environment manager is detected, suggest installing one (pyenv or conda) | |
| - If multiple managers are detected, explain their different use cases | |
| - Suggest best practices for the detected setup | |
| - Warn about potential PATH conflicts | |
| ## Important notes: | |
| - Don't use sudo for these checks (environment managers are typically user-level) | |
| - Be clear about which Python is currently active vs. available | |
| - Explain the difference between system Python and managed versions | |
| - If shell initialization is missing for detected managers, point that out | |