whatisgithub

What is pyenv-virtualenvwrapper?

pyenv/pyenv-virtualenvwrapper — explained in plain English

Analysis updated 2026-07-13 · repo last pushed 2017-08-20

678ShellAudience · developerComplexity · 2/5DormantSetup · easy

In one sentence

A plugin that makes pyenv and virtualenvwrapper work together, so your isolated Python environments always use the pyenv-selected Python version without conflicts.

Mindmap

mindmap
  root((repo))
  What it does
    Bridges pyenv and virtualenvwrapper
    Syncs active Python version
    Auto-installs virtualenvwrapper
  Tech stack
    Shell scripts
    pyenv plugin
    virtualenvwrapper
    Python venv support
  Use cases
    Multi-version Python projects
    Legacy and modern side by side
    Isolated project environments
  Audience
    Python developers
    pyenv and virtualenvwrapper users
  Alternatives
    pyenv-virtualenv sibling project
    Different integration approach
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Keep virtualenvwrapper in sync when switching Python versions with pyenv.

USE CASE 2

Maintain isolated environments for legacy and modern Python projects side by side.

USE CASE 3

Auto-install virtualenvwrapper if it is missing on your system.

USE CASE 4

Use Python 3's built-in venv instead of the older virtualenv tool.

What is it built with?

ShellpyenvvirtualenvwrappervirtualenvPython 3 venv

How does it compare?

pyenv/pyenv-virtualenvwrapperpyenv/pyenv-updatethananon/9arm-skills
Stars6783831,133
LanguageShellShellShell
Last pushed2017-08-202026-01-10
MaintenanceDormantQuiet
Setup difficultyeasyeasyeasy
Complexity2/51/51/5
Audiencedeveloperdeveloperdeveloper

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · easy Time to first run · 5min

Requires both pyenv and virtualenvwrapper to already be installed and configured on your system.

So what is it?

Python developers often need isolated environments for different projects, so that each one can have its own set of libraries without causing conflicts. A popular tool for managing these environments is called virtualenvwrapper. If you also use pyenv, a tool for installing and switching between multiple versions of Python itself, getting virtualenvwrapper to play nicely with your active Python version can be tricky. The pyenv-virtualenvwrapper plugin solves this by bridging the two tools together. When you install this plugin, it provides a single command that initializes virtualenvwrapper to use whatever Python version you currently have selected in pyenv. Without it, virtualenvwrapper might try to use the wrong Python installation, leading to broken environments. By running the plugin's setup command, the two systems stay in sync, and the plugin will even install virtualenvwrapper for you if it's missing. You can also configure it to use Python 3's built-in environment creator instead of the older virtualenv tool, if you prefer. This tool is for developers who already use both pyenv and virtualenvwrapper in their daily workflow. For example, if you maintain an older project that requires Python 2.7 and a newer project that requires Python 3.9, you would use pyenv to switch your active Python version, then use this plugin to ensure your isolated environments are created under the correct version. It is essentially a compatibility layer for people who like the virtualenvwrapper workflow but also want the flexibility of managing multiple Python versions. The README notes that there is a sibling project, pyenv-virtualenv, which takes a different, more integrated approach. That alternative treats isolated environments as first-class versions within pyenv itself, allowing you to activate and deactivate them directly. This plugin, by contrast, keeps the two tools separate but ensures they communicate properly. The distinction matters if you have a strong preference for the traditional virtualenvwrapper commands and habits.

Copy-paste prompts

Prompt 1
I use pyenv to switch between Python 2.7 and Python 3.9. How do I install and configure pyenv-virtualenvwrapper so virtualenvwrapper creates environments under the correct Python version?
Prompt 2
Set up pyenv-virtualenvwrapper on my machine and configure it to use Python 3's built-in venv module instead of virtualenv.
Prompt 3
Show me how to initialize pyenv-virtualenvwrapper after switching Python versions with pyenv, and explain what command to run so the two tools stay in sync.
Prompt 4
Compare pyenv-virtualenvwrapper and pyenv-virtualenv for my workflow: which should I pick if I want to keep using traditional virtualenvwrapper commands?

Frequently asked questions

What is pyenv-virtualenvwrapper?

A plugin that makes pyenv and virtualenvwrapper work together, so your isolated Python environments always use the pyenv-selected Python version without conflicts.

What language is pyenv-virtualenvwrapper written in?

Mainly Shell. The stack also includes Shell, pyenv, virtualenvwrapper.

Is pyenv-virtualenvwrapper actively maintained?

Dormant — no commits in 2+ years (last push 2017-08-20).

How hard is pyenv-virtualenvwrapper to set up?

Setup difficulty is rated easy, with roughly 5min to a first successful run.

Who is pyenv-virtualenvwrapper for?

Mainly developer.

Open on GitHub → Ask about another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.