Files
heroku-buildpack-python/bin/steps
Ed Morley 46581612fc Install pip and setuptools in the same pip invocation (#1007)
`get-pip.py` installs setuptools itself (if it's not already installed):
https://pip.pypa.io/en/stable/installing/#installing-with-get-pip-py
https://github.com/pypa/get-pip/blob/eff16c878c7fd6b688b9b4c4267695cf1a0bf01b/templates/default.py#L152-L153

This means that previously the latest version of setuptools (currently
`49.2.0`) was being installed from PyPI, and then immediately after the
target version (currently `39.0.1`) installed over it.

This added time to the build unnecessarily.

The version of setuptools installed by `get-pip.py` can be overridden
by passing in a version as a normal requirements specifier.

Fixes #1001.
2020-07-29 19:11:35 +01:00
..
2017-08-28 13:41:32 -04:00
2019-10-09 15:28:31 +02:00
2017-08-03 17:36:23 -04:00
2017-08-03 17:36:23 -04:00
2019-10-09 15:28:31 +02:00
2019-02-21 14:06:20 -08:00
2019-10-09 15:28:31 +02:00
2019-10-22 11:28:08 -07:00
2020-03-24 13:43:18 -04:00

Python Buildpack Install Steps

TODO: Add context on Python install steps, such as why symlinking vs copying

Installing the Pip tool

The Python Buildpack uses a tool called get-pip to install the pip tool. This is done in the python script.

This is in part because Python historically did not come with pip by default.

Installing Python packages using Pip

Convention: Use python process to invoke Pip

We don't use this convention (yet) but this is an upcoming change being considered.

This is a bigger concern on Windows than it is in Linux environments, but an emerging convention in the Python community is to invoke pip using:

python3 -m pip [options]

Invoking pip this way ensures correct location - python knows where these packages are stored because it put them there (defaults to Python's pathing info).

All normal command line options are available using this method.