Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Use local copy of python package rather than the one installed in site-packages

Tags:

python

I've installed a Python based package in my site-packages directory. However, I'm trying to learn how the code works so I'd like to hack it a bunch by putting in lots of print statements so I can understand what the code is doing. But at the end of the day I want a clean installation without all my hacks in it.

Of course I could just copy the original files to something else, make some hacks, and then at the end copy all the original files back over. But that's really tedious. At the very least, I'd like to install a local copy of the Python package and then have the python script use this copy preferentially (perhaps by suitable statements at the top of the script). But perhaps this isn't even the best way to do python development/hacking.

What's the best solution for my problem? I want to be able to hack on the package (and use that package) but without messing up my clean version.

like image 815
gammapoint Avatar asked Oct 15 '25 17:10

gammapoint


2 Answers

Take a look at virtualenv. You can basically setup a local python environment in which you can install anything you like without having to mess around with the system environment.

like image 177
schaueho Avatar answered Oct 18 '25 06:10

schaueho


The virtualenv-advice given is correct, depending on your actual package you can even go beyond that and not mess with the site-packages inside the virtualenv at all.

If the package is setuptools-based, a simple

$ python setup.py develop

from within a working-copy of it's source, it won't be installed, but instead just hooked into the virtualenv pointing to the working-copy. Advantage: you can edit (and e.g. rollback using GIT or whatever SCM the package maintainer uses) files in a well-defined and non-volatile location.

like image 24
deets Avatar answered Oct 18 '25 08:10

deets



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!