NOTE: SlideShare seems to have problems rendering some of my screenshots. Please visit
https://speakerdeck.com/uranusjr/we-buy-cheese-in-a-cheese-shop
for a correctly-displayed version.
ORIGINAL DESCRIPTION:
Python packaging is ______. But PyPA is trying to solve the problem. Let's take a look at how we got into this mess in the first place, and how did/will PyPA do to fix it.
7. “I buy my eggs at the cheese shop”
]
E
G
A
U
G
- Aaron Straup Cope
N
O
O
[M
DjangoCon 2008
N
A
L
59
Why I Hate Django by Cal Henderson at DjangoCon 2008
8. Me
• Call me TP
• Follow @uranusjr
• RTFM
• http://uranusjr.logdown.com/pages/about
23. Wheel is…
• The replacement of egg
• Standardized
• Alternative Python implementation
• API tag
• Packaged with better structure and metadata
• Performance
• Security
29. distutils
• I am no expert on neither itself nor its history
• Built-in since Python 1.6 (2000)
• Nothing really changed since about 10 years ago
Full documentation: http://docs.python.org/library/distutils.html
56. [Y]ou don't have to worry
about it. They've figured
it all out already.
The Absolute Minimum Every Software Developer Absolutely, Positively Must Know
About Unicode and Character Sets (No Excuses!) by Joel Spolsky
66. Why PIP?
• All packages are downloaded before installation
• Flat installation by default
• Uninstallation
• Clean code™
• PyPI with HTTPS by default
http://www.pip-installer.org/en/latest/other-tools.html#easy-install
67. Why NOT PIP?
• Incompatible with certain legacy packages (rare)
• Cannot install from bdist packages (except eggs)
http://www.pip-installer.org/en/latest/other-tools.html#easy-install
71. distribute
• Intended to replace Setuptools
• Shares the same module names (setuptools
and pkg_resources)
• Active development
https://bitbucket.org/tarek/distribute/overview
83. PyPA’s Schedule
• Merge Distribute back to Setuptools (Done)
• New binary distribution format (Done)
• Built-in Setuptools and pip support in Python
• Better security
• …And more!
The Future of Python Packaging, Python Packaging User Guide