The pyenv
package is a very useful tool for managing multiple versions of Python, without too much hassle. It also comes with various plugins for streamlining the development experience, including pyenv-virtualenv
, which provides features for managing virtual environments and conda environments.
Unfortunately,
pyenv
is not supported on Windows. However, we recommend using thepyenv-win
fork for Windows users.
Installing pyenv
1. Install required Python build dependencies
Mac OS X
brew install openssl readline sqlite3 xz zlib
Ubuntu/Debian/Mint
sudo apt-get update; sudo apt-get install 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
Alpine
apk add --no-cache git bash build-base libffi-dev openssl-dev bzip2-dev zlib-dev readline-dev sqlite-dev
2. Installing pyenv
The fastest way to install pyenv
and some of popular plugins is to use the pyenv-installer
:
curl https://pyenv.run | bash
Next up, restart your shell so the path changes take effect:
exec $SHELL
3. Updating pyenv
Updating pyenv
is as simple as:
pyenv update
4. Switching between Python versions
-
pyenv local 3.3.3
- Sets Python 3.3.3 in the local shell. -
pyenv global 2.7.3
- Sets Python 2.7.3 globally, in all shells.
5. Managing virtual environments and Python versions
-
pyenv virtualenv 3.3.3 virtual-env-name
- Creates a virtual environment calledvirtual-env-name
that uses Python 3.3.3 -
pyenv virtualenvs
- Shows the created virtual environments. -
pyenv activate virtual-env-name
- Activates the virtual environment with thevirtual-env-name
name. -
pyenv deactivate
- Deactivates the currently activated virtual environment.
Uninstalling pyenv
The pyenv
executable is installed in $PYENV_ROOT
, which defaults to ~/.pyenv
. To uninstall it, just simply remove it:
rm -fr ~/.pyenv
Then clean up your .bashrc
file, by removing the following lines from it:
export PATH="$HOME/.pyenv/bin:$PATH"
eval "$(pyenv init --path)"
eval "$(pyenv virtualenv-init -)"
Conclusion
In this article we've learned how simple and easy it is to use pyenv
and its related plugins for managing multiple versions of Python and virtual environments from a single machine.
This article was originally published here.
Top comments (0)