Python Packaging Woes: part 3
A bit of wrap-up after part 1 and part 2
Current state of the things
I seem to have missed something: there's now a very active Python Packaging Authority which is trying very hard to push Python packaging in the right direction, so that we can have a good set of tools that work properly together. Checkout their repositories and mailing lists.
Setuptools and distribute got merged and we won't experience a split-experience anymore, we'll just have One Tool To Rule Them All!
So, rejoice! Things are getting better!
In the meantime
I recommend using Pip . Always try using requirements.txt, it's a good way to keep your versions
consistent and working.
Use virtualenv for development purposes, and always test your package in a virtualenv with a disabled site-packages! Otherwise you risk you're distributing something that works on your workstation only because of a site-wide package you have installed there!
In order to distribute a package, you'll need setuptools/distribute as well;
just do a source distribution and a wheel distribution (you're required to
install wheel beside setuptools); forget
about eggs, especially for eggs containing binary extensions. Your command line
should be something like:
python setup.py clean register sdist bdist_wheel upload
And let's keep our fingers crossed on a better state of things!