
When you install Python packages into a given instance of Python, the default behavior is for the package’s files to be copied into the target installation. But sometimes you don’t want to copy the files—sometimes, you want to link to them, so any installed version of the package can be updated by simply editing the linked source.
This behavior is called an editable install, and it’s a powerful way to make use of a package at the same time you’re editing it. Any changes to the source for the package are instantly reflected everywhere it is installed.
Using editable installs to keep projects in sync
Here’s a common scenario: Let’s say you have a Python project named pythingy
somewhere on your system—say, /usr/projects/pythingy
or D:/dev/pythingy
. You use pythingy
as a utility in various other Python projects, but you’re also constantly working on and making changes to pything
. It’s a pain to install and update copies of pythingy
into multiple virtual environments every time you make a change.