pyenv-win / pyenv-win

pyenv for Windows. pyenv is a simple python version management tool. It lets you easily switch between multiple versions of Python. It's simple, unobtrusive, and follows the UNIX tradition of single-purpose tools that do one thing well.
https://pyenv-win.github.io/pyenv-win
MIT License
4.33k stars 410 forks source link
pyenv pyenv-alternative pyenv-for-windows pyenv-win pyenv-windows python python-version-management windows-pyenv windows-python

pyenv for Windows

pyenv is an amazing tool used to manage multiple versions of python in your machine. We have ported it to Windows. We need your thoughts to improve this library and your feedback helps to grow the project.

For existing python users, we support installation via pip.

Contributors and Interested people can join us on @Slack. Your help keeps us motivated!

pytest License: MIT GitHub issues open Downloads Rate this package

Introduction

pyenv for python is a great tool but, like rbenv for ruby developers, it doesn't directly support Windows. After a bit of research and feedback from python developers, I discovered they wanted a similar feature for Windows systems.

This project was forked from rbenv-win and modified for pyenv. It is now fairly mature, thanks to help from many different contributors.

pyenv

pyenv is a simple python version management tool. It lets you easily switch between multiple versions of Python. It's simple, unobtrusive, and follows the UNIX tradition of single-purpose tools that do one thing well.

Quick start

  1. Install pyenv-win in PowerShell.

    Invoke-WebRequest -UseBasicParsing -Uri "https://raw.githubusercontent.com/pyenv-win/pyenv-win/master/pyenv-win/install-pyenv-win.ps1" -OutFile "./install-pyenv-win.ps1"; &"./install-pyenv-win.ps1"
  2. Reopen PowerShell

  3. Run pyenv --version to check if the installation was successful.

  4. Run pyenv install -l to check a list of Python versions supported by pyenv-win

  5. Run pyenv install <version> to install the supported version

  6. Run pyenv global <version> to set a Python version as the global version

  7. Check which Python version you are using and its path

    > pyenv version
    <version> (set by \path\to\.pyenv\pyenv-win\.python-version)
  8. Check that Python is working

    > python -c "import sys; print(sys.executable)"
    \path\to\.pyenv\pyenv-win\versions\<version>\python.exe

pyenv-win commands

   commands     List all available pyenv commands
   local        Set or show the local application-specific Python version
   latest       Print the latest installed or known version with the given prefix
   global       Set or show the global Python version
   shell        Set or show the shell-specific Python version
   install      Install 1 or more versions of Python
   uninstall    Uninstall 1 or more versions of Python
   update       Update the cached version DB
   rehash       Rehash pyenv shims (run this after switching Python versions)
   vname        Show the current Python version
   version      Show the current Python version and its origin
   version-name Show the current Python version
   versions     List all Python versions available to pyenv
   exec         Runs an executable by first preparing PATH so that the selected 
                Python version's `bin' directory is at the front
   which        Display the full path to an executable
   whence       List all Python versions that contain the given executable

Installation

Currently we support following ways, choose any of your comfort:

Please see the Installation page for more details.

Validate installation

  1. Reopen the command prompt and run pyenv --version
  2. Now type pyenv to view it's usage

If you are getting "command not found" error, check the below note and manually check the settings

For Visual Studio Code or another IDE with a built in terminal, restart it and check again


Manually check the settings

Ensure all environment variables are properly set with high priority via the GUI:

This PC
   → Properties
      → Advanced system settings
         → Advanced → Environment Variables...
            → PATH

NOTE: If you are running Windows 10 1905 or newer, you might need to disable the built-in Python launcher via Start > "Manage App Execution Aliases" and turning off the "App Installer" aliases for Python

Usage

How to update pyenv

Announcements

To keep in sync with pyenv linux/mac, pyenv-win now installs 64bit versions by default. To support compatibility with older versions of pyenv-win, we maintain a 32bit train (branch) as a separate release.

Both releases can install 64bit and 32bit python versions; the difference is in version names, for example:

> pyenv install -l | findstr 3.8
....
3.8.0-win32
3.8.0
3.8.1rc1-win32
3.8.1rc1
3.8.1-win32
3.8.1
3.8.2-win32
3.8.2
3.9.0-win32
3.9.0
....
> pyenv install -l | findstr 3.8
....
3.8.0
3.8.0-amd64
3.8.1rc1
3.8.1rc1-amd64
3.8.1
3.8.1-amd64
3.8.2
3.8.2-amd64
....

Support for Python versions below 2.4 have been dropped since their installers don't install "cleanly" like versions from 2.4 onward and they're predominantly out of use/support in most environments now.

FAQ

Please see the FAQ page.

Changelog

Please see the Changelog page.

How to contribute

Bug Tracker and Support

License and Copyright

Author and Thanks

pyenv-win was developed by Kiran Kumar Kotari and Contributors Thanks for all Contributors and Supports for patience for the latest major release.