Reputation: 15251
I installed some package via pip install something
. I want to edit the source code for the package something
. Where is it (on ubuntu 12.04) and how do I make it reload each time I edit the source code and run it?
Currently I am editing the source code, and then running python setup.py again and again, which turns out to be quite a hassle.
Upvotes: 111
Views: 151732
Reputation: 31
If you are doing the custom module that you want hot loading, you can put your running code also inside the module. Then you can use python -m package.your_running_code
. In this way, you can change the module
in the package and reflect the result of your running code immediately.
Upvotes: 0
Reputation: 28868
You can edit the files installed in /usr/local/lib/python2.7/dist-packages/
. Do note that you will have to use sudo
or become root
.
The better option would be to use virtual environment for your development. Then you can edit the files installed with your permissions inside your virtual environment and only affect the current project.
In this case the files are in ./venv/lib/pythonX.Y/site-packages
The path could be dist-packages
or site-packages
, you can read more in the answer to this question
Note that, as the rest of the people have mentioned, this should only be used sparingly, for small tests or debug, and being sure to revert your changes to prevent issues when upgrading the package.
To properly apply a change to the package (a fix or a new feature) go for the options described in other answers to contribute to the repo or fork it.
Upvotes: 14
Reputation: 9801
You should never edit an installed package. Instead, install a forked version of package.
If you need to edit the code frequently, DO NOT install the package via pip install something
and edit the code in '.../site_packages/...'
Instead, put the source code under a development directory, and install it with
$ python setup.py develop
or
$ pip install -e path/to/SomePackage
Or use a vcs at the first place
$ pip install -e git+https://github.com/lakshmivyas/hyde.git#egg=hyde
Put your changes in a version control system, and tell pip to install it explicitly.
Reference: Edit mode
Upvotes: 138
Reputation: 181
I too needed to change some things inside a package. Taking inspiration from the previous answers, You can do the following.
pip install -e git+repositoryurl@branchname
Upvotes: 10