mirror of
https://github.com/kennethreitz/heroku-buildpack-python.git
synced 2026-06-05 23:10:16 +00:00
Compare commits
5 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| db95cdd3f3 | |||
| 04f3ddbc86 | |||
| f06f5676e8 | |||
| c8c8995d70 | |||
| 4ee3baaded |
+18
-6
@@ -1,16 +1,28 @@
|
||||
# Python Buildpack Changelog
|
||||
|
||||
# 109
|
||||
|
||||
Fix output for collectstatic step.
|
||||
|
||||
# 108
|
||||
|
||||
Updated setuptools.
|
||||
|
||||
# 107
|
||||
|
||||
Bugfix for C dependency installation.
|
||||
|
||||
# 106
|
||||
|
||||
Don't install packages that could mess up packaging.
|
||||
Don't install packages that could mess up packaging.
|
||||
|
||||
- The Python buildpack will automatically remove `six`, `pyparsing`, `appdirs`,
|
||||
`setuptools`, and `distribute` from a `requirements.txt` file now, as these
|
||||
packages are provided by the Python buildpack.
|
||||
- The Python buildpack will automatically remove `six`, `pyparsing`, `appdirs`,
|
||||
`setuptools`, and `distribute` from a `requirements.txt` file now, as these
|
||||
packages are provided by the Python buildpack.
|
||||
|
||||
# 105
|
||||
# 105
|
||||
|
||||
Improvements to output messaging.
|
||||
Improvements to output messaging.
|
||||
|
||||
# 104
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
MIT License:
|
||||
|
||||
Copyright (C) 2016 Heroku, Inc.
|
||||
Copyright (C) 2017 Heroku, Inc.
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
||||
|
||||
|
||||
+4
-9
@@ -36,7 +36,6 @@ DEFAULT_PYTHON_VERSION="python-2.7.13"
|
||||
DEFAULT_PYTHON_STACK="cedar-14"
|
||||
PYTHON_EXE="/app/.heroku/python/bin/python"
|
||||
PIP_VERSION="9.0.1"
|
||||
SETUPTOOLS_VERSION="32.1.0"
|
||||
|
||||
# Common Problem Warnings
|
||||
export WARNINGS_LOG=$(mktemp)
|
||||
@@ -171,19 +170,15 @@ sub-env $BIN_DIR/steps/geo-libs
|
||||
# GDAL support.
|
||||
source $BIN_DIR/steps/gdal
|
||||
|
||||
# Uninstall removed dependencies with Pip.
|
||||
let start=$(nowms)
|
||||
source $BIN_DIR/steps/pip-uninstall
|
||||
mtime "pip.uninstall.time" "${start}"
|
||||
|
||||
# Cleanup requirements.txt
|
||||
source $BIN_DIR/steps/setuptools
|
||||
|
||||
# Install dependencies with Pip (where the magic happens).
|
||||
let start=$(nowms)
|
||||
source $BIN_DIR/steps/pip-install
|
||||
mtime "pip.install.time" "${start}"
|
||||
|
||||
# Uninstall removed dependencies with Pip.
|
||||
let start=$(nowms)
|
||||
source $BIN_DIR/steps/pip-uninstall
|
||||
mtime "pip.uninstall.time" "${start}"
|
||||
|
||||
# Support for NLTK corpora.
|
||||
let start=$(nowms)
|
||||
|
||||
@@ -20,7 +20,7 @@ MANAGE_FILE=${MANAGE_FILE:-fakepath}
|
||||
[ -f .heroku/collectstatic_disabled ] && DISABLE_COLLECTSTATIC=1
|
||||
|
||||
# Ensure that Django is explicitly specified in requirements.txt
|
||||
sp-grep django && DJANGO_INSTALLED=1
|
||||
sp-grep -s django && DJANGO_INSTALLED=1
|
||||
|
||||
|
||||
if [ ! "$DISABLE_COLLECTSTATIC" ] && [ -f "$MANAGE_FILE" ] && [ "$DJANGO_INSTALLED" ]; then
|
||||
|
||||
@@ -1,11 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# Syntax sugar.
|
||||
source $BIN_DIR/utils
|
||||
|
||||
puts-step "Removing packaging utilities from requirements.txt."
|
||||
|
||||
if [[ -f requirements.txt ]]; then
|
||||
pip-clean requirements.txt
|
||||
fi
|
||||
|
||||
Executable
+18
@@ -0,0 +1,18 @@
|
||||
#!/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/3.5.3/Python-3.5.3.tgz'
|
||||
curl -L $SOURCE_TARBALL | tar xz
|
||||
mv Python-3.5.3 src
|
||||
cd src
|
||||
|
||||
./configure --prefix=$OUT_PREFIX --with-ensurepip=no
|
||||
make
|
||||
make install
|
||||
|
||||
# ln $OUT_PREFIX/bin/python3 $OUT_PREFIX/bin/python
|
||||
|
||||
+1
@@ -0,0 +1 @@
|
||||
pylibmc
|
||||
@@ -44,6 +44,12 @@ testPsycopg2() {
|
||||
assertCapturedSuccess
|
||||
}
|
||||
|
||||
testPylibmc() {
|
||||
compile "pylibmc"
|
||||
assertCaptured "pylibmc"
|
||||
assertCapturedSuccess
|
||||
}
|
||||
|
||||
testPython2() {
|
||||
compile "python2"
|
||||
assertCaptured "python-2.7.13"
|
||||
|
||||
Vendored
-33
@@ -1,33 +0,0 @@
|
||||
#!/usr/bin/env python
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
"""Usage:
|
||||
pip-clean <req-file>
|
||||
|
||||
Options:
|
||||
-h --help Show this screen.
|
||||
"""
|
||||
from docopt import docopt
|
||||
|
||||
BAD_PACKAGES = ['appdirs', 'packaging', 'pyparsing', 'six', 'setuptools', 'distribute']
|
||||
|
||||
|
||||
def good_package(line):
|
||||
package_name = line.split('=')[0].split('<')[0].split('>')[0].split(' ')[0].split('#')[0].split('\n')[0]
|
||||
return package_name not in BAD_PACKAGES
|
||||
|
||||
def main():
|
||||
args = docopt(__doc__, version='pip-clean')
|
||||
req_file = args['<req-file>']
|
||||
|
||||
with open(req_file, 'r') as f:
|
||||
# Iterate over every line in the requirements file.
|
||||
lines = [line for line in f if good_package(line)]
|
||||
|
||||
# Write the requirements file to disk.
|
||||
with open(req_file, 'w') as f:
|
||||
f.write(''.join(lines))
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
Vendored
-17
@@ -1,17 +0,0 @@
|
||||
certifi==2017.4.17
|
||||
chardet==3.0.3
|
||||
dateparser
|
||||
humanize==0.5.1
|
||||
idna==2.5
|
||||
maya==0.3.2
|
||||
pendulum==1.2.1
|
||||
python-dateutil==2.6.0
|
||||
pytz==2017.2
|
||||
pytzdata==2017.2
|
||||
regex==2017.5.26
|
||||
requests==2.17.3
|
||||
ruamel.ordereddict==0.4.9
|
||||
ruamel.yaml==0.14.12
|
||||
tzlocal==1.4
|
||||
urllib3==1.21.1
|
||||
|
||||
Reference in New Issue
Block a user