diff options
Diffstat (limited to 'posts/2012-10-31-virtualenv-and-checkouts.org')
| -rw-r--r-- | posts/2012-10-31-virtualenv-and-checkouts.org | 48 |
1 files changed, 0 insertions, 48 deletions
diff --git a/posts/2012-10-31-virtualenv-and-checkouts.org b/posts/2012-10-31-virtualenv-and-checkouts.org deleted file mode 100644 index 40e37cc..0000000 --- a/posts/2012-10-31-virtualenv-and-checkouts.org +++ /dev/null @@ -1,48 +0,0 @@ -I've started to do some Clojure in my spare time. The default tool -adopted by the community to manage projects is -[[http://leiningen.org][leiningen]]. For those of you who don't know -what =lein= is, it's a tool to automate your Clojure project: it will -boostrap a new project, install the dependencies, and there's a plugin -mechanism to extend the default possibilities of the tool. - -One of the nice feature of the tool is the *checkouts* directory. From -the -[[https://github.com/technomancy/leiningen/blob/preview/doc/FAQ.md][FAQ]]: - -#+BEGIN_QUOTE - If you create a directory named checkouts in your project root and - symlink some other project roots into it, Leiningen will allow you to - hack on them in parallel. -#+END_QUOTE - -For Python projects at [[http://www.saymedia.com/careers][$work]] I use -[[http://virtualenvwrapper.readthedocs.org/en/latest/][virtualenvwrapper]] -to easily work on them without having to deal with conflicting -dependencies. When I need to change a library that is used by one of the -project, usually I go to the virtualenv directory and create a symlink -so it uses the one I'm editing. - -What I really want is a mechanism similar to =lein=, where I can have a -*checkouts/* directory inside the main project, where I can clone a -library or create a symlink. Since =virtualenvwrapper= provides a hook -mechanism, I wrote a small hook inside *~/.virtualenvs/postactivate*: - -#+BEGIN_SRC sh - #!/bin/bash - - # move to the directory of the project - proj_name=$(echo $VIRTUAL_ENV|awk -F'/' '{print $NF}') - proj_path=/home/vagrant/src/$proj_name - - cd $proj_path - - if [ -d checkouts ]; then - for ext in $(ls checkouts); do - export PYTHONPATH=proj_path/checkouts/$ext:$PYTHONPATH - done - fi -#+END_SRC - -Then, when I type =workon $project_name= in my shell, the environment is -activated, I'm moved to the right directory, and the library inside the -*checkouts/* directory are added to my *PYTHONPATH*. |
