Hacker News new | past | comments | ask | show | jobs | submit login
Beginners Guide : pip and virtualenv (mahdiyusuf.com)
68 points by myusuf3 on Aug 7, 2011 | hide | past | favorite | 14 comments



You should try virtualenvwrapper, it makes the process of activating and changing between virtualenvs a breeze.


I liked virtualenvwrapper, but it added considerable (noticable) latency to my terminal startups. I ended up removing it and went back to manual virtualenv activation (with a couple of small helper bash functions of course).


Same here. At times, it gets so bad that I have to hit Ctrl+C and then it dumps out a nice big trace before giving me my shell prompt.


I have never seen that. it just loads a script into path. interesting.


upcoming post :P


Nice article.

I use virtualenv heavily and still do the symlinking dance. I keep my django trunk in a ~/libraries folder and symlink the django folder to the /path/to/virtualenv/lib/pythonX.X/site-packages folder. I'm not sure that I have a compelling reason for doing so.


cd ~Path/to/django; pip install -e .;

It feels better than symlinking to me.

I would really only do this if I had a custom patched django though. If speed/bandwidth is a concern, just make sure your pip cache is setup properly.


I would suggest to stop doing that since thats the point of virtualenv; it is a bit of pain since it doesn't put django-admin.py in path but you can always refer to it.


One of the nice things about virtualenv is that it installs a copy of pip into every virtual environment you create. If you always have one of the environments active, there's no need to even install pip globally.


Except for when you DO want to install a package globally. Utilities like pyflakes and fabric, for example.


On my personal machines (effectively single-user), I find there's no need to install packages globally. I have a default virtual environment that I activate in my .profile, and anything that's not project-specific gets installed there.

Not saying everyone should do this, but it works well for me.


thats such a hassle. though, why dont you just install global requirements in the base machine, you wont always have to keep turning on virtualenvs.


Also worth mentioning pythonbrew which goes a step further and allows you to manage separate Python builds.


pip & virtualenv saved me a world of hurt upgrading from Snow Leopard to Lion. The upgrade completely wiped out any global packages I had in Python/2.6 - so I did lose a few packages that I needed to rebuild, but not many.




Consider applying for YC's Spring batch! Applications are open till Feb 11.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: