So you want to create a pex that packages your script and its dependencies?
Ok - first to make our script! Call it foo.py:
import requests if __name__ == '__main__': req = requests.get("https://raw.githubusercontent.com/pantsbuild/pex/master/README.rst") print req.text.split("\n")
requests hello world program. To package it we need a minimal
setup.py for distributing a script. Put it
in the same directory:
from distutils.core import setup setup(name='foo', version='1.0', scripts=['foo.py'], )
Now that our script is packageable we can use
pex to build an executable out of it:
$ pex . requests -c foo.py -o foo.pex -f dist
. are our dependencies.
-c foo.py tells pex what to run. And
-o foo.pex creates the
You should get a
foo.pex file in the same directory. Run it to see the script execute:
$ ./foo.pex PEX
And you can unzip the pex to see the contents including the packaged dependencies:
$ unzip -t foo.pex ... much output not shown...