Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
We Store Cheese in the Warehouse
Slide 2
Slide 2 text
No content
Slide 3
Slide 3 text
No content
Slide 4
Slide 4 text
http://lucumr.pocoo.org/2012/6/22/hate-hate-hate-everywhere/
Slide 5
Slide 5 text
2012
Slide 6
Slide 6 text
Party Like It’s 2012 • Setuptools • site and .pth files • Eggs
Slide 7
Slide 7 text
Setuptools • Package metadata • Dependency resolution! • easy_install
Slide 8
Slide 8 text
LIAR!!!1
Slide 9
Slide 9 text
No content
Slide 10
Slide 10 text
.pth • Path configuration file • Placed in site-packages • Populate sys.path at runtime
Slide 11
Slide 11 text
A PIL Tutorial >>> import Image >>> im = Image.open("louie.jpg") >>> im.show() https://gist.github.com/bradmontgomery/3125124 ?
Slide 12
Slide 12 text
$ ls $LIB/python2.7/site-packages PIL pkg_resources PIL.pth setuptools easy_install.py setuptools-36.5.0.dist-info easy_install.pyc wheel pip wheel-0.30.0.dist-info pip-9.0.1.dist-info
Slide 13
Slide 13 text
>>> import Image >>> print(Image.__file__) lib/python2.7/site-packages/PIL/Image.pyc >>> import sys >>> for path in sys.path: ... print path ... (more...) lib/python2.7/site-packages/PIL (more...)
Slide 14
Slide 14 text
$ ls $LIB/python2.7/site-packages PIL pkg_resources PIL.pth setuptools easy_install.py setuptools-36.5.0.dist-info easy_install.pyc wheel pip wheel-0.30.0.dist-info pip-9.0.1.dist-info This
Slide 15
Slide 15 text
PTH FILES PTH FILES EVERYWHERE
Slide 16
Slide 16 text
2014
Slide 17
Slide 17 text
No content
Slide 18
Slide 18 text
No content
Slide 19
Slide 19 text
No content
Slide 20
Slide 20 text
No content
Slide 21
Slide 21 text
No content
Slide 22
Slide 22 text
Now
Slide 23
Slide 23 text
PyPA’s Schedule • Merge back Distribute • New binary format (wheel) • Built-in Setuptools and Pip • Better Security
Slide 24
Slide 24 text
No content
Slide 25
Slide 25 text
No content
Slide 26
Slide 26 text
HTTPS support on PyPI
Slide 27
Slide 27 text
https://packaging.python.org
Slide 28
Slide 28 text
Next
Slide 29
Slide 29 text
Package Author Server User
Slide 30
Slide 30 text
https://pypi.org
Slide 31
Slide 31 text
https://github.com/pypa/warehouse
Slide 32
Slide 32 text
Package Author Server User
Slide 33
Slide 33 text
https://pipenv.org
Slide 34
Slide 34 text
Pipfile • “Requirements 2.0” • Eventual pip -p integration • https://github.com/pypa/pipfile
Slide 35
Slide 35 text
Pipfile • The “lock” concept • PEP 508 environment markers • Robust file format
Slide 36
Slide 36 text
Package Author Server User
Slide 37
Slide 37 text
SETUP.PY INSTALL MUST DIE
Slide 38
Slide 38 text
No content
Slide 39
Slide 39 text
setup.py • Ad-hoc executable is always wrong • Don’t know what will happen until they actually happen • Wrong assumptions on top of wrong assumptions
Slide 40
Slide 40 text
https://en.wikipedia.org/wiki/Catch-22_(logic)
Slide 41
Slide 41 text
pyproject.toml • Declarative data file • PEP 508 for requirement specification • Eventual support in Pip
Slide 42
Slide 42 text
Summary • Use Pipenv to manage projects • Use modern tools to distribute packages • Adopt PEP 508, prepare for PEP 518
Slide 43
Slide 43 text
Summary • A lot can happen in five years • PyPA rocks, please help them • Looking forward to the next five!
Slide 44
Slide 44 text
No content