mirror of
https://github.com/kennethreitz/heroku-buildpack-python.git
synced 2026-06-05 23:10:16 +00:00
Compare commits
6 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 98b2c904c3 | |||
| fb52d1bf59 | |||
| 12c1d0b1d2 | |||
| 38dbb17313 | |||
| 0dd9911e91 | |||
| 2b00650c01 |
+5
-43
@@ -1,43 +1,5 @@
|
||||
# Python Buildpack Changelog
|
||||
|
||||
# 119
|
||||
|
||||
Improvements to Pipenv support, warning on unsupported Python versions.
|
||||
|
||||
- We now warn when a user is not using latest 2.x or 3.x Python.
|
||||
- Heroku now supports `[requires]` `python_full_version` in addition to `python_version`.
|
||||
|
||||
# 118
|
||||
|
||||
Improvements to Pipenv support.
|
||||
|
||||
# 117
|
||||
|
||||
Bug fix.
|
||||
|
||||
# 116
|
||||
|
||||
Vendoring improvements.
|
||||
|
||||
- Geos libraries should work on Heroku-16 now.
|
||||
- The libffi/libmemcached vendoring step is now skipped on Heroku-16 (since they are installed in the base image).
|
||||
|
||||
# 115
|
||||
|
||||
Revert a pull request.
|
||||
|
||||
- No longer using `sub_env` for `pip install` step.
|
||||
|
||||
# 114
|
||||
|
||||
- Bugfixes.
|
||||
|
||||
Blacklisting `PYTHONHOME` and `PYTHONPATH` for older apps. Upgrades to nltk support.
|
||||
|
||||
# 113
|
||||
|
||||
Updates to Pipenv support.
|
||||
|
||||
# 112
|
||||
|
||||
Bugfix.
|
||||
@@ -50,18 +12,18 @@ Linting, bugfixes.
|
||||
|
||||
# 110
|
||||
|
||||
Update default Python to 3.6.2.
|
||||
|
||||
# 109
|
||||
|
||||
Update Default Python to 3.6.1, bugfixes.
|
||||
|
||||
- Fixed automatic pip uninstall of dependencies removed from requirements.txt.
|
||||
|
||||
# 108
|
||||
# 109
|
||||
|
||||
Fix output for collectstatic step.
|
||||
|
||||
# 108
|
||||
|
||||
Updated setuptools.
|
||||
|
||||
# 107
|
||||
|
||||
Bugfix for C dependency installation.
|
||||
|
||||
@@ -1,9 +0,0 @@
|
||||
[[source]]
|
||||
url = "https://pypi.python.org/simple"
|
||||
verify_ssl = true
|
||||
name = "pypi"
|
||||
|
||||
[dev-packages]
|
||||
|
||||
[packages]
|
||||
"bob-builder" = "==0.0.13"
|
||||
Generated
-52
@@ -1,52 +0,0 @@
|
||||
{
|
||||
"_meta": {
|
||||
"hash": {
|
||||
"sha256": "36d17c46a8b1b844b3cae475f6f42d6c0a9e59b2a9685cbcdc0985656a7a129f"
|
||||
},
|
||||
"host-environment-markers": {
|
||||
"implementation_name": "cpython",
|
||||
"implementation_version": "3.6.2",
|
||||
"os_name": "posix",
|
||||
"platform_machine": "x86_64",
|
||||
"platform_python_implementation": "CPython",
|
||||
"platform_release": "16.7.0",
|
||||
"platform_system": "Darwin",
|
||||
"platform_version": "Darwin Kernel Version 16.7.0: Thu Jun 15 17:36:27 PDT 2017; root:xnu-3789.70.16~2/RELEASE_X86_64",
|
||||
"python_full_version": "3.6.2",
|
||||
"python_version": "3.6",
|
||||
"sys_platform": "darwin"
|
||||
},
|
||||
"pipfile-spec": 6,
|
||||
"requires": {},
|
||||
"sources": [
|
||||
{
|
||||
"name": "pypi",
|
||||
"url": "https://pypi.python.org/simple",
|
||||
"verify_ssl": true
|
||||
}
|
||||
]
|
||||
},
|
||||
"default": {
|
||||
"bob-builder": {
|
||||
"hashes": [
|
||||
"sha256:b4de49a8e436fcaf82236ea43f78413b4a4c92100726e382ab57b6bdfb38fe64",
|
||||
"sha256:288e3e765c4890fe9a63ae52ac6b4a963c13fe508482c70ff701a5ae21b9a673"
|
||||
],
|
||||
"version": "==0.0.13"
|
||||
},
|
||||
"boto": {
|
||||
"hashes": [
|
||||
"sha256:13be844158d1bd80a94c972c806ec8381b9ea72035aa06123c5db6bc6a6f3ead",
|
||||
"sha256:deb8925b734b109679e3de65856018996338758f4b916ff4fe7bb62b6d7000d1"
|
||||
],
|
||||
"version": "==2.48.0"
|
||||
},
|
||||
"docopt": {
|
||||
"hashes": [
|
||||
"sha256:49b3a825280bd66b3aa83585ef59c4a8c82f2c8a522dbe754a8bc8d08c85c491"
|
||||
],
|
||||
"version": "==0.6.2"
|
||||
}
|
||||
},
|
||||
"develop": {}
|
||||
}
|
||||
@@ -4,7 +4,7 @@
|
||||
|
||||
[](https://travis-ci.org/heroku/heroku-buildpack-python)
|
||||
|
||||
This is the official [Heroku buildpack](https://devcenter.heroku.com/articles/buildpacks) for Python apps, powered by [Pipenv](http://docs.pipenv.org/en/latest/), [pip](https://pip.pypa.io/) and other excellent software.
|
||||
This is the official [Heroku buildpack](https://devcenter.heroku.com/articles/buildpacks) for Python apps, powered by [pip](https://pip.pypa.io/) and other excellent software.
|
||||
|
||||
Recommended web frameworks include **Django** and **Flask**. The recommended webserver is **Gunicorn**. There are no restrictions around what software can be used (as long as it's pip-installable). Web processes must bind to `$PORT`, and only the HTTP protocol is permitted for incoming connections.
|
||||
|
||||
@@ -16,22 +16,24 @@ See it in Action
|
||||
Deploying a Python application couldn't be easier:
|
||||
|
||||
$ ls
|
||||
Pipfile Procfile web.py
|
||||
Procfile requirements.txt web.py
|
||||
|
||||
$ heroku create --buildpack heroku/python
|
||||
|
||||
$ git push heroku master
|
||||
…
|
||||
...
|
||||
-----> Python app detected
|
||||
-----> Installing python-3.6.2
|
||||
-----> Installing pip
|
||||
-----> Installing requirements with latest pipenv…
|
||||
...
|
||||
Installing dependencies from Pipfile…
|
||||
$ pip install -r requirements.txt
|
||||
Collecting requests (from -r requirements.txt (line 1))
|
||||
Downloading requests-2.12.4-py2.py3-none-any.whl (576KB)
|
||||
Installing collected packages: requests
|
||||
Successfully installed requests-2.12.4
|
||||
|
||||
-----> Discovering process types
|
||||
Procfile declares types -> (none)
|
||||
|
||||
A `Pipfile` or `requirements.txt` must be present at the root of your application's repository.
|
||||
A `requirements.txt` file must be present at the root of your application's repository.
|
||||
|
||||
You can also specify the latest production release of this buildpack for upcoming builds of an existing application:
|
||||
|
||||
@@ -44,21 +46,11 @@ Specify a Python Runtime
|
||||
Specific versions of the Python runtime can be specified with a `runtime.txt` file:
|
||||
|
||||
$ cat runtime.txt
|
||||
python-2.7.14
|
||||
|
||||
Or, with a `Pipfile.lock` (generated from the following `Pipfile`):
|
||||
|
||||
[requires]
|
||||
python_version = "2.7"
|
||||
|
||||
Or, more specifically:
|
||||
|
||||
[requires]
|
||||
python_full_version = "2.7.14"
|
||||
python-2.7.13
|
||||
|
||||
Runtime options include:
|
||||
|
||||
- `python-3.6.2`
|
||||
- `python-2.7.14`
|
||||
- `python-2.7.13`
|
||||
- `pypy-5.7.1` (unsupported, experimental)
|
||||
- `pypy3-5.5.1` (unsupported, experimental)
|
||||
|
||||
+1
-4
@@ -35,13 +35,10 @@ export BUILD_DIR CACHE_DIR ENV_DIR
|
||||
|
||||
# Python defaults
|
||||
DEFAULT_PYTHON_VERSION="python-3.6.2"
|
||||
LATEST_3="python-3.6.2"
|
||||
LATEST_2="python-2.7.14"
|
||||
|
||||
DEFAULT_PYTHON_STACK="cedar-14"
|
||||
PIP_UPDATE="9.0.1"
|
||||
|
||||
export DEFAULT_PYTHON_VERSION DEFAULT_PYTHON_STACK PIP_UPDATE LATEST_2 LATEST_3
|
||||
export DEFAULT_PYTHON_VERSION DEFAULT_PYTHON_STACK PIP_UPDATE
|
||||
|
||||
# Common Problem Warnings
|
||||
WARNINGS_LOG=$(mktemp)
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# This script serves as the cffi build step of the
|
||||
# This script serves as the Cryptography build step of the
|
||||
# [**Python Buildpack**](https://github.com/heroku/heroku-buildpack-python)
|
||||
# compiler.
|
||||
#
|
||||
@@ -9,11 +9,6 @@
|
||||
#
|
||||
# This script is invoked by [`bin/compile`](/).
|
||||
|
||||
if [[ "$STACK" == "heroku-16" ]]; then
|
||||
# libffi is pre-installed in the stack image so there is no need to vendor it.
|
||||
return 0
|
||||
fi
|
||||
|
||||
# The location of the pre-compiled libffi binary.
|
||||
VENDORED_LIBFFI="https://lang-python.s3.amazonaws.com/$STACK/libraries/vendor/libffi.tar.gz"
|
||||
|
||||
|
||||
@@ -30,12 +30,6 @@ if [[ "$BUILD_WITH_GEO_LIBRARIES" ]]; then
|
||||
curl "$VENDORED_GDAL" -s | tar zxv -C .heroku/vendor &> /dev/null
|
||||
curl "$VENDORED_GEOS" -s | tar zxv -C .heroku/vendor &> /dev/null
|
||||
curl "$VENDORED_PROJ" -s | tar zxv -C .heroku/vendor &> /dev/null
|
||||
|
||||
# Copy libjasper from build image to slug.
|
||||
if [[ "$STACK" == "heroku-16" ]]; then
|
||||
cp /usr/lib/x86_64-linux-gnu/libjasper.so* ".heroku/vendor/lib/."
|
||||
fi
|
||||
|
||||
fi
|
||||
|
||||
GDAL=$(pwd)/vendor
|
||||
|
||||
+5
-4
@@ -15,16 +15,16 @@ source "$BIN_DIR/utils"
|
||||
|
||||
# Check that nltk was installed by pip, otherwise obviously not needed
|
||||
if sp-grep -s nltk; then
|
||||
puts-step "Downloading NLTK corpora…"
|
||||
puts-step "Downloading NLTK corpora..."
|
||||
|
||||
nltk_packages_definition="$BUILD_DIR/nltk.txt"
|
||||
|
||||
if [ -f "$nltk_packages_definition" ]; then
|
||||
|
||||
readarray -t nltk_packages < "$nltk_packages_definition"
|
||||
puts-step "Downloading NLTK packages: ${nltk_packages[*]}"
|
||||
nltk_packages=$(tr "\n" " " < "$nltk_packages_definition")
|
||||
puts-step "Downloading NLTK packages: $nltk_packages"
|
||||
|
||||
python -m nltk.downloader -d "$BUILD_DIR/.heroku/python/nltk_data" "${nltk_packages[@]}" | indent
|
||||
python -m nltk.downloader -d "$BUILD_DIR/.heroku/python/nltk_data" "$nltk_packages" | indent
|
||||
set_env NLTK_DATA "/app/.heroku/python/nltk_data"
|
||||
|
||||
else
|
||||
@@ -32,3 +32,4 @@ if sp-grep -s nltk; then
|
||||
puts-warn "Learn more: https://devcenter.heroku.com/articles/python-nltk"
|
||||
fi
|
||||
fi
|
||||
|
||||
|
||||
@@ -6,8 +6,7 @@ if [ ! "$SKIP_PIP_INSTALL" ]; then
|
||||
puts-step "Installing requirements with pip"
|
||||
|
||||
set +e
|
||||
|
||||
/app/.heroku/python/bin/pip install -r "$BUILD_DIR/requirements.txt" --exists-action=w --src=/app/.heroku/src --disable-pip-version-check --no-cache-dir 2>&1 | tee "$WARNINGS_LOG" | cleanup | indent
|
||||
sub_env /app/.heroku/python/bin/pip install -r "$BUILD_DIR/requirements.txt" --exists-action=w --src=/app/.heroku/src --disable-pip-version-check --no-cache-dir 2>&1 | tee "$WARNINGS_LOG" | cleanup | indent
|
||||
PIP_STATUS="${PIPESTATUS[0]}"
|
||||
set -e
|
||||
|
||||
|
||||
+2
-10
@@ -1,23 +1,15 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# export CLINT_FORCE_COLOR=1
|
||||
# export PIPENV_FORCE_COLOR=1
|
||||
|
||||
# Pipenv support (Generate requriements.txt with pipenv).
|
||||
if [[ -f Pipfile ]]; then
|
||||
if [[ ! -f requirements.txt ]]; then
|
||||
puts-step "Installing requirements with latest Pipenv…"
|
||||
puts-step "Installing requirements with latest pipenv..."
|
||||
|
||||
# Install pipenv.
|
||||
/app/.heroku/python/bin/pip install pipenv --upgrade &> /dev/null
|
||||
|
||||
if [[ ! -f Pipfile.lock ]]; then
|
||||
/app/.heroku/python/bin/pipenv install --system --skip-lock 2>&1 | indent
|
||||
else
|
||||
/app/.heroku/python/bin/pipenv install --system 2>&1 | indent
|
||||
fi
|
||||
# Install the dependencies.
|
||||
|
||||
/app/.heroku/python/bin/pipenv install --system 2>&1 | indent
|
||||
|
||||
# Skip pip install, later.
|
||||
export SKIP_PIP_INSTALL=1
|
||||
|
||||
@@ -2,31 +2,23 @@
|
||||
|
||||
# Detect Python-version with Pipenv.
|
||||
|
||||
if [[ -f $BUILD_DIR/Pipfile ]]; then
|
||||
if [[ -f $BUILD_DIR/Pipfile.lock ]]; then
|
||||
|
||||
if [[ ! -f $BUILD_DIR/runtime.txt ]]; then
|
||||
if [[ ! -f $BUILD_DIR/Pipfile.lock ]]; then
|
||||
puts-warn "No 'Pipfile.lock' found! We recommend you commit this into your repository."
|
||||
puts-warn "No 'pipfile.lock' found! We recommend you commit this into your repository."
|
||||
fi
|
||||
if [[ -f $BUILD_DIR/Pipfile.lock ]]; then
|
||||
set +e
|
||||
PYTHON=$(jq -r '._meta.requires.python_full_version' "$BUILD_DIR/Pipfile.lock")
|
||||
if [[ "$PYTHON" != "null" ]]; then
|
||||
echo "python-$PYTHON" > "$BUILD_DIR/runtime.txt"
|
||||
fi
|
||||
PYTHON=$(jq -r '._meta.requires.python_version' "$BUILD_DIR/Pipfile.lock")
|
||||
set -e
|
||||
|
||||
if [[ "$PYTHON" == "null" ]]; then
|
||||
PYTHON=$(jq -r '._meta.requires.python_version' "$BUILD_DIR/Pipfile.lock")
|
||||
if [ "$PYTHON" = 2.7 ]; then
|
||||
echo "python-2.7.14" > "$BUILD_DIR/runtime.txt"
|
||||
fi
|
||||
if [ "$PYTHON" = 3.6 ]; then
|
||||
echo "python-3.6.2" > "$BUILD_DIR/runtime.txt"
|
||||
fi
|
||||
if [ "$PYTHON" = 2.7 ]; then
|
||||
echo "python-2.7.13" > "$BUILD_DIR/runtime.txt"
|
||||
fi
|
||||
if [ "$PYTHON" = 3.6 ]; then
|
||||
echo "python-3.6.2" > "$BUILD_DIR/runtime.txt"
|
||||
fi
|
||||
|
||||
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
+1
-5
@@ -9,11 +9,6 @@
|
||||
#
|
||||
# This script is invoked by [`bin/compile`](/).
|
||||
|
||||
if [[ "$STACK" == "heroku-16" ]]; then
|
||||
# libmemcached is pre-installed in the stack image so there is no need to vendor it.
|
||||
return 0
|
||||
fi
|
||||
|
||||
# The location of the pre-compiled libmemcached binary.
|
||||
VENDORED_MEMCACHED="https://lang-python.s3.amazonaws.com/$STACK/libraries/vendor/libmemcache.tar.gz"
|
||||
|
||||
@@ -21,6 +16,7 @@ VENDORED_MEMCACHED="https://lang-python.s3.amazonaws.com/$STACK/libraries/vendor
|
||||
# shellcheck source=bin/utils
|
||||
source "$BIN_DIR/utils"
|
||||
|
||||
|
||||
# If pylibmc exists within requirements, use vendored libmemcached.
|
||||
if (pip-grep -s requirements.txt pylibmc &> /dev/null) then
|
||||
|
||||
|
||||
@@ -4,21 +4,6 @@ set +e
|
||||
runtime-fixer runtime.txt
|
||||
PYTHON_VERSION=$(cat runtime.txt)
|
||||
|
||||
if [[ $PYTHON_VERSION =~ ^python-2 ]]; then
|
||||
if [[ "$PYTHON_VERSION" != "$LATEST_2" ]]; then
|
||||
puts-warn "The latest version of Python 2 is $LATEST_2 (you are using $PYTHON_VERSION, which is unsupported)."
|
||||
puts-warn "We recommend upgrading by specifying the latest version ($LATEST_2)."
|
||||
echo " Learn More: https://devcenter.heroku.com/articles/python-runtimes"
|
||||
fi
|
||||
else
|
||||
if [[ "$PYTHON_VERSION" != "$LATEST_3" ]]; then
|
||||
puts-warn "The latest version of Python 3 is $LATEST_3 (you are using $PYTHON_VERSION, which is unsupported)."
|
||||
puts-warn "We recommend upgrading by specifying the latest version ($LATEST_3)."
|
||||
echo " Learn More: https://devcenter.heroku.com/articles/python-runtimes"
|
||||
fi
|
||||
|
||||
fi
|
||||
|
||||
if [[ "$STACK" != "$CACHED_PYTHON_STACK" ]]; then
|
||||
puts-step "Stack has changed from $CACHED_PYTHON_STACK to $STACK, clearing cache"
|
||||
rm -fr .heroku/python-stack .heroku/python-version .heroku/python .heroku/vendor
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
|
||||
OUT_PREFIX=$1
|
||||
|
||||
echo "Building SQLite…"
|
||||
echo "Building SQLite..."
|
||||
|
||||
|
||||
SOURCE_TARBALL='https://www.sqlite.org/sqlite-autoconf-3070900.tar.gz'
|
||||
|
||||
Vendored
+2
-2
@@ -8,9 +8,9 @@ export PATH="/app/.heroku/python/bin/:$PATH"
|
||||
hash -r
|
||||
|
||||
|
||||
echo "Building gdal…"
|
||||
echo "Building gdal..."
|
||||
|
||||
VERSION="2.2.1"
|
||||
VERSION="1.11.5"
|
||||
SOURCE_TARBALL="http://download.osgeo.org/gdal/${VERSION}/gdal-${VERSION}.tar.gz"
|
||||
|
||||
curl -L $SOURCE_TARBALL | tar zx
|
||||
|
||||
Vendored
+4
-6
@@ -8,18 +8,16 @@ export PATH="/app/.heroku/python/bin/:$PATH"
|
||||
hash -r
|
||||
|
||||
|
||||
echo "Building geos…"
|
||||
echo "Building geos..."
|
||||
|
||||
VERSION=3.6.2
|
||||
|
||||
SOURCE_TARBALL="http://download.osgeo.org/geos/geos-${VERSION}.tar.bz2"
|
||||
SOURCE_TARBALL='http://download.osgeo.org/geos/geos-3.4.3.tar.bz2'
|
||||
|
||||
curl -L $SOURCE_TARBALL | tar xj
|
||||
|
||||
pushd "geos-${VERSION}"
|
||||
cd geos-3.4.3
|
||||
./configure --prefix=$OUT_PREFIX --enable-static=no &&
|
||||
make
|
||||
make install
|
||||
|
||||
# Cleanup
|
||||
popd
|
||||
cd ..
|
||||
|
||||
Vendored
+1
-1
@@ -13,7 +13,7 @@ export PATH="/app/.heroku/python/bin/:$PATH"
|
||||
hash -r
|
||||
|
||||
|
||||
echo "Building libffi…"
|
||||
echo "Building libffi..."
|
||||
|
||||
SOURCE_TARBALL='ftp://sourceware.org/pub/libffi/libffi-3.1.tar.gz'
|
||||
|
||||
|
||||
Vendored
+2
-2
@@ -20,7 +20,7 @@ dep_archive_name=${dep_dirname}.tar.gz
|
||||
dep_url=https://launchpad.net/libmemcached/1.0/${dep_version}/+download/${dep_archive_name}
|
||||
|
||||
# SASL Support.
|
||||
echo "-----> Building cyrus-sasl 2.1.26…"
|
||||
echo "-----> Building cyrus-sasl 2.1.26..."
|
||||
|
||||
curl -LO ftp://ftp.cyrusimap.org/cyrus-sasl/cyrus-sasl-2.1.26.tar.gz
|
||||
# FTP doesn't play well with piping into tar xz
|
||||
@@ -33,7 +33,7 @@ make -s -j 9
|
||||
make install -s
|
||||
popd
|
||||
|
||||
echo "-----> Building libmemcached ${dep_version}…"
|
||||
echo "-----> Building libmemcached ${dep_version}..."
|
||||
|
||||
curl -L ${dep_url} | tar xz
|
||||
pushd ${dep_dirname}
|
||||
|
||||
Vendored
+5
-6
@@ -8,17 +8,16 @@ export PATH="/app/.heroku/python/bin/:$PATH"
|
||||
hash -r
|
||||
|
||||
|
||||
echo "Building gdal…"
|
||||
echo "Building gdal..."
|
||||
|
||||
VERSION=4.9.3
|
||||
SOURCE_TARBALL="http://download.osgeo.org/proj/proj-${VERSION}.tar.gz"
|
||||
SOURCE_TARBALL='http://download.osgeo.org/proj/proj-4.8.0.tar.gz'
|
||||
|
||||
curl -L $SOURCE_TARBALL | tar zx
|
||||
|
||||
pushd "proj-${VERSION}"
|
||||
./configure --prefix=$OUT_PREFIX --enable-static=no
|
||||
cd proj-4.8.0
|
||||
./configure --prefix=$OUT_PREFIX --enable-static=no &&
|
||||
make
|
||||
make install
|
||||
|
||||
# Cleanup
|
||||
popd
|
||||
cd ..
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
|
||||
OUT_PREFIX=$1
|
||||
|
||||
echo "Building PyPy…"
|
||||
echo "Building PyPy..."
|
||||
SOURCE_TARBALL='https://bitbucket.org/pypy/pypy/downloads/pypy2-v5.3.1-linux64.tar.bz2'
|
||||
curl -L $SOURCE_TARBALL | tar jx
|
||||
cp -R pypy2-v5.3.1-linux64/* $OUT_PREFIX
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
|
||||
OUT_PREFIX=$1
|
||||
|
||||
echo "Building PyPy…"
|
||||
echo "Building PyPy..."
|
||||
SOURCE_TARBALL='https://bitbucket.org/pypy/pypy/downloads/pypy2-v5.6.0-linux64.tar.bz2'
|
||||
curl -L $SOURCE_TARBALL | tar jx
|
||||
cp -R pypy2-v5.6.0-linux64/* $OUT_PREFIX
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
|
||||
OUT_PREFIX=$1
|
||||
|
||||
echo "Building PyPy…"
|
||||
echo "Building PyPy..."
|
||||
SOURCE_TARBALL='https://bitbucket.org/pypy/pypy/downloads/pypy2-v5.7.0-linux64.tar.bz2'
|
||||
curl -L $SOURCE_TARBALL | tar jx
|
||||
cp -R pypy2-v5.7.0-linux64/* $OUT_PREFIX
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
|
||||
OUT_PREFIX=$1
|
||||
|
||||
echo "Building PyPy…"
|
||||
echo "Building PyPy..."
|
||||
SOURCE_TARBALL='https://bitbucket.org/pypy/pypy/downloads/pypy2-v5.7.1-linux64.tar.bz2'
|
||||
curl -L $SOURCE_TARBALL | tar jx
|
||||
cp -R pypy2-v5.7.1-linux64/* $OUT_PREFIX
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
|
||||
OUT_PREFIX=$1
|
||||
|
||||
echo "Building PyPy…"
|
||||
echo "Building PyPy..."
|
||||
SOURCE_TARBALL='https://bitbucket.org/pypy/pypy/downloads/pypy2-v5.8.0-linux64.tar.bz2'
|
||||
curl -L $SOURCE_TARBALL | tar jx
|
||||
cp -R pypy2-v5.8.0-linux64/* $OUT_PREFIX
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
|
||||
OUT_PREFIX=$1
|
||||
|
||||
echo "Building PyPy…"
|
||||
echo "Building PyPy..."
|
||||
SOURCE_TARBALL='https://bitbucket.org/pypy/pypy/downloads/pypy3-2.4.0-linux64.tar.bz2'
|
||||
curl -L $SOURCE_TARBALL | tar jx
|
||||
cp -R pypy3-2.4.0-linux64/* $OUT_PREFIX
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
|
||||
OUT_PREFIX=$1
|
||||
|
||||
echo "Building PyPy…"
|
||||
echo "Building PyPy..."
|
||||
SOURCE_TARBALL='https://bitbucket.org/pypy/pypy/downloads/pypy3.3-v5.5.0-alpha-linux64.tar.bz2'
|
||||
curl -L $SOURCE_TARBALL | tar jx
|
||||
cp -R pypy3-v5.5.0-linux64/* $OUT_PREFIX
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
|
||||
OUT_PREFIX=$1
|
||||
|
||||
echo "Building PyPy…"
|
||||
echo "Building PyPy..."
|
||||
SOURCE_TARBALL='https://bitbucket.org/pypy/pypy/downloads/pypy3-v5.7.1-linux64.tar.bz2'
|
||||
curl -L $SOURCE_TARBALL | tar jx
|
||||
cp -R pypy3-v5.7.1-linux64/* $OUT_PREFIX
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
|
||||
OUT_PREFIX=$1
|
||||
|
||||
echo "Building PyPy…"
|
||||
echo "Building PyPy..."
|
||||
SOURCE_TARBALL='https://bitbucket.org/pypy/pypy/downloads/pypy3-v5.8.0-linux64.tar.bz2'
|
||||
curl -L $SOURCE_TARBALL | tar jx
|
||||
cp -R pypy3-v5.8.0-linux64/* $OUT_PREFIX
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
|
||||
OUT_PREFIX=$1
|
||||
|
||||
echo "Building Python…"
|
||||
echo "Building Python..."
|
||||
SOURCE_TARBALL='https://python.org/ftp/python/2.7.10/Python-2.7.10.tgz'
|
||||
curl -L $SOURCE_TARBALL | tar xz
|
||||
mv Python-2.7.10 src
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
|
||||
OUT_PREFIX=$1
|
||||
|
||||
echo "Building Python…"
|
||||
echo "Building Python..."
|
||||
SOURCE_TARBALL='https://python.org/ftp/python/2.7.11/Python-2.7.11.tgz'
|
||||
curl -L $SOURCE_TARBALL | tar xz
|
||||
mv Python-2.7.11 src
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
|
||||
OUT_PREFIX=$1
|
||||
|
||||
echo "Building Python…"
|
||||
echo "Building Python..."
|
||||
SOURCE_TARBALL='https://python.org/ftp/python/2.7.12/Python-2.7.12.tgz'
|
||||
curl -L $SOURCE_TARBALL | tar xz
|
||||
mv Python-2.7.12 src
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
|
||||
OUT_PREFIX=$1
|
||||
|
||||
echo "Building Python…"
|
||||
echo "Building Python..."
|
||||
SOURCE_TARBALL='https://python.org/ftp/python/2.7.13/Python-2.7.13.tgz'
|
||||
curl -L $SOURCE_TARBALL | tar xz
|
||||
mv Python-2.7.13 src
|
||||
|
||||
@@ -1,19 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
# Build Path: /app/.heroku/python/
|
||||
# Build Deps: libraries/sqlite
|
||||
|
||||
OUT_PREFIX=$1
|
||||
|
||||
echo "Building Python…"
|
||||
SOURCE_TARBALL='https://python.org/ftp/python/2.7.14/Python-2.7.14.tgz'
|
||||
curl -L $SOURCE_TARBALL | tar xz
|
||||
mv Python-2.7.14 src
|
||||
cd src
|
||||
|
||||
./configure --prefix=$OUT_PREFIX --enable-unicode=ucs4 --with-ensurepip=no
|
||||
make
|
||||
make install
|
||||
|
||||
# Remove unneeded test directories, similar to the official Docker Python images:
|
||||
# https://github.com/docker-library/python
|
||||
find "${OUT_PREFIX}" \( -type d -a \( -name test -o -name tests \) \) -exec rm -rf '{}' +
|
||||
@@ -4,7 +4,7 @@
|
||||
|
||||
OUT_PREFIX=$1
|
||||
|
||||
echo "Building Python…"
|
||||
echo "Building Python..."
|
||||
SOURCE_TARBALL='https://python.org/ftp/python/2.7.9/Python-2.7.9.tgz'
|
||||
curl -L $SOURCE_TARBALL | tar xz
|
||||
mv Python-2.7.9 src
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
|
||||
OUT_PREFIX=$1
|
||||
|
||||
echo "Building Python…"
|
||||
echo "Building Python..."
|
||||
SOURCE_TARBALL='https://python.org/ftp/python/3.5.2/Python-3.5.2.tgz'
|
||||
curl -L $SOURCE_TARBALL | tar xz
|
||||
mv Python-3.5.2 src
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
|
||||
OUT_PREFIX=$1
|
||||
|
||||
echo "Building Python…"
|
||||
echo "Building Python..."
|
||||
SOURCE_TARBALL='https://python.org/ftp/python/3.5.3/Python-3.5.3.tgz'
|
||||
curl -L $SOURCE_TARBALL | tar xz
|
||||
mv Python-3.5.3 src
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
|
||||
OUT_PREFIX=$1
|
||||
|
||||
echo "Building Python…"
|
||||
echo "Building Python..."
|
||||
SOURCE_TARBALL='https://python.org/ftp/python/3.6.0/Python-3.6.0.tgz'
|
||||
curl -L $SOURCE_TARBALL | tar xz
|
||||
mv Python-3.6.0 src
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
|
||||
OUT_PREFIX=$1
|
||||
|
||||
echo "Building Python…"
|
||||
echo "Building Python..."
|
||||
SOURCE_TARBALL='https://python.org/ftp/python/3.6.1/Python-3.6.1.tgz'
|
||||
curl -L $SOURCE_TARBALL | tar xz
|
||||
mv Python-3.6.1 src
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
|
||||
OUT_PREFIX=$1
|
||||
|
||||
echo "Building Python…"
|
||||
echo "Building Python..."
|
||||
SOURCE_TARBALL='https://python.org/ftp/python/3.6.2/Python-3.6.2.tgz'
|
||||
curl -L $SOURCE_TARBALL | tar xz
|
||||
mv Python-3.6.2 src
|
||||
|
||||
@@ -1,3 +1 @@
|
||||
docopt==0.6.2
|
||||
bob-builder==0.0.13
|
||||
boto==2.48.0
|
||||
|
||||
Vendored
-1
@@ -1 +0,0 @@
|
||||
cffi
|
||||
Vendored
+1
-2
@@ -1,2 +1 @@
|
||||
city_database
|
||||
stopwords
|
||||
wordnet
|
||||
-9
@@ -1,9 +0,0 @@
|
||||
[[source]]
|
||||
url = "https://pypi.python.org/simple"
|
||||
verify_ssl = true
|
||||
|
||||
[packages]
|
||||
requests = "*"
|
||||
|
||||
[requires]
|
||||
python_full_version = "3.6.2"
|
||||
-23
@@ -1,23 +0,0 @@
|
||||
{
|
||||
"default": {
|
||||
"requests": {
|
||||
"version": "==2.13.0",
|
||||
"hash": "sha256:1a720e8862a41aa22e339373b526f508ef0c8988baf48b84d3fc891a8e237efb"
|
||||
}
|
||||
},
|
||||
"develop": {},
|
||||
"_meta": {
|
||||
"sources": [
|
||||
{
|
||||
"url": "https://pypi.python.org/simple",
|
||||
"verify_ssl": true
|
||||
}
|
||||
],
|
||||
"requires": {
|
||||
"python_version": "3.6"
|
||||
},
|
||||
"hash": {
|
||||
"sha256": "5866990104fc8f27d13cdf01abc2a32c553129e03f666316cacc5b42d3e0884e"
|
||||
}
|
||||
}
|
||||
}
|
||||
Vendored
-2
@@ -1,2 +0,0 @@
|
||||
[packages]
|
||||
"delegator.py" = "*"
|
||||
-53
@@ -1,53 +0,0 @@
|
||||
{
|
||||
"_meta": {
|
||||
"hash": {
|
||||
"sha256": "397f2c55e3558ea57d292e3fc19b34e483770e5ec02cdedfb1f330680cd26635"
|
||||
},
|
||||
"host-environment-markers": {
|
||||
"implementation_name": "cpython",
|
||||
"implementation_version": "3.6.2",
|
||||
"os_name": "posix",
|
||||
"platform_machine": "x86_64",
|
||||
"platform_python_implementation": "CPython",
|
||||
"platform_release": "16.7.0",
|
||||
"platform_system": "Darwin",
|
||||
"platform_version": "Darwin Kernel Version 16.7.0: Thu Jun 15 17:36:27 PDT 2017; root:xnu-3789.70.16~2/RELEASE_X86_64",
|
||||
"python_full_version": "3.6.2",
|
||||
"python_version": "3.6",
|
||||
"sys_platform": "darwin"
|
||||
},
|
||||
"pipfile-spec": 6,
|
||||
"requires": {},
|
||||
"sources": [
|
||||
{
|
||||
"name": "pypi",
|
||||
"url": "https://pypi.python.org/simple",
|
||||
"verify_ssl": true
|
||||
}
|
||||
]
|
||||
},
|
||||
"default": {
|
||||
"delegator.py": {
|
||||
"hashes": [
|
||||
"sha256:2575c4adc923ad0b8fdaa433f862b2b7cf21982717fb23cc895fd8f249ea820c",
|
||||
"sha256:495e11ada66648650171a6c9a188df4eb050b235abff8771f41ee8a064eb9ded"
|
||||
],
|
||||
"version": "==0.0.13"
|
||||
},
|
||||
"pexpect": {
|
||||
"hashes": [
|
||||
"sha256:f853b52afaf3b064d29854771e2db509ef80392509bde2dd7a6ecf2dfc3f0018",
|
||||
"sha256:3d132465a75b57aa818341c6521392a06cc660feb3988d7f1074f39bd23c9a92"
|
||||
],
|
||||
"version": "==4.2.1"
|
||||
},
|
||||
"ptyprocess": {
|
||||
"hashes": [
|
||||
"sha256:e8c43b5eee76b2083a9badde89fd1bbce6c8942d1045146e100b7b5e014f4f1a",
|
||||
"sha256:e64193f0047ad603b71f202332ab5527c5e52aa7c8b609704fc28c0dc20c4365"
|
||||
],
|
||||
"version": "==0.5.2"
|
||||
}
|
||||
},
|
||||
"develop": {}
|
||||
}
|
||||
Vendored
+1
-1
@@ -1 +1 @@
|
||||
python-2.7.14
|
||||
python-2.7.13
|
||||
@@ -5,23 +5,12 @@ testPipenv() {
|
||||
assertCapturedSuccess
|
||||
}
|
||||
|
||||
testPipenvLock() {
|
||||
compile "pipenv-lock"
|
||||
assertCapturedSuccess
|
||||
}
|
||||
|
||||
testPipenvVersion() {
|
||||
compile "pipenv-version"
|
||||
assertCaptured "3.6.2"
|
||||
assertCapturedSuccess
|
||||
}
|
||||
|
||||
testPipenvFullVersion() {
|
||||
compile "pipenv-full-version"
|
||||
assertCaptured "3.6.2"
|
||||
assertCapturedSuccess
|
||||
}
|
||||
|
||||
testNoRequirements() {
|
||||
compile "no-requirements"
|
||||
assertCapturedError
|
||||
@@ -35,7 +24,7 @@ testGEOS() {
|
||||
|
||||
testNLTK() {
|
||||
compile "nltk"
|
||||
assertCaptured "Downloading NLTK packages: city_database stopwords"
|
||||
assertCaptured "wordnet"
|
||||
assertCapturedSuccess
|
||||
}
|
||||
|
||||
@@ -58,12 +47,6 @@ testPsycopg2() {
|
||||
assertCapturedSuccess
|
||||
}
|
||||
|
||||
testCffi() {
|
||||
compile "cffi"
|
||||
assertCaptured "cffi"
|
||||
assertCapturedSuccess
|
||||
}
|
||||
|
||||
testPylibmc() {
|
||||
compile "pylibmc"
|
||||
assertCaptured "pylibmc"
|
||||
@@ -72,7 +55,7 @@ testPylibmc() {
|
||||
|
||||
testPython2() {
|
||||
compile "python2"
|
||||
assertCaptured "python-2.7.14"
|
||||
assertCaptured "python-2.7.13"
|
||||
assertCapturedSuccess
|
||||
}
|
||||
|
||||
|
||||
@@ -150,11 +150,6 @@ _assertContains()
|
||||
esac
|
||||
|
||||
fail "${msg:-${default_msg}}"
|
||||
|
||||
if [ "${haystack_type}" == "file" ]; then
|
||||
echo
|
||||
cat "${haystack}"
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user