From 6f1551d597f44477980043d00193fe48f3a82251 Mon Sep 17 00:00:00 2001 From: Frederik Rietdijk Date: Sat, 13 Aug 2016 14:18:59 +0200 Subject: [PATCH] Doc: how to create a Python wheel --- doc/languages-frameworks/python.md | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/doc/languages-frameworks/python.md b/doc/languages-frameworks/python.md index 6f5054c177b..bb1094e2b74 100644 --- a/doc/languages-frameworks/python.md +++ b/doc/languages-frameworks/python.md @@ -748,6 +748,23 @@ in newpkgs.python35.withPackages (ps: [ps.blaze]) ``` The requested package `blaze` depends upon `pandas` which itself depends on `scipy`. +### `python setup.py bdist_wheel` cannot create .whl + +Executing `python setup.py bdist_wheel` fails with +``` +ValueError: ZIP does not support timestamps before 1980 +``` +This is because files are included that depend on items in the Nix store which have a timestamp of, that is, it corresponds to January the 1st, 1970 at 00:00:00. And as the error informs you, ZIP does not support that. +Fortunately `bdist_wheel` takes into account `SOURCE_DATE_EPOCH`. On Nix this value is set to 1. By setting it to a value correspond to 1980 or later it is possible to build wheels. + +Use 1980 as timestamp: +``` +SOURCE_DATE_EPOCH=315532800 python3 setup.py bdist_wheel +``` +or the current time: +``` +SOURCE_DATE_EPOCH=$(date +%s) python3 setup.py bdist_wheel +``` ### `install_data` / `data_files` problems