Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Developing Python Module

Tags:

python

I'd like to start developing an existing Python module. It has a source folder and the setup.py script to build and install it. The build script just copies the source files since they're all python scripts.

Currently, I have put the source folder under version control and whenever I make a change I re-build and re-install. This seems a little slow, and it doesn't settle well with me to "commit" my changes to my python install each time I make a modification. How can I cause my import statement to redirect to my development directory?

like image 221
Gus Avatar asked Apr 15 '11 15:04

Gus


3 Answers

Use a virtualenv and use python setup.py develop to link your module to the virtual Python environment. This will make your project's Python packages/modules show up on the sys.path without having to run install.

Example:

% virtualenv ~/virtenv
% . ~/virtenv/bin/activate
(virtenv)% cd ~/myproject
(virtenv)% python setup.py develop
like image 192
samplebias Avatar answered Oct 09 '22 16:10

samplebias


Virtualenv was already mentioned.

And as your files are already under version control you could go one step further and use Pip to install your repo (or a specific branch or tag) into your working environment.

See the docs for Pip's editable option:

-e VCS+REPOS_URL[@REV]#egg=PACKAGE, --editable=VCS+REPOS_URL[@REV]#egg=PACKAGE

Install a package directly from a checkout. Source will be checked out into src/PACKAGE (lower-case) and installed in-place (using setup.py develop).

Now you can work on the files that pip automatically checked out for you and when you feel like it, you commit your stuff and push it back to the originating repository.

To get a good, general overview concerning Pip and Virtualenv see this post: http://www.saltycrane.com/blog/2009/05/notes-using-pip-and-virtualenv-django

like image 34
arie Avatar answered Oct 09 '22 16:10

arie


Install the distrubute package then use the developer mode. Just use python setup.py develop --user and that will place path pointers in your user dir location to your workspace.

like image 22
Keith Avatar answered Oct 09 '22 16:10

Keith