Adding more informative error messages

This commit is contained in:
Yannick Jadoul
2020-02-20 00:17:06 +01:00
parent 2ce304d5d9
commit d14427d781
3 changed files with 27 additions and 11 deletions
+8 -3
View File
@@ -70,9 +70,14 @@ def build(project_dir, output_dir, test_command, test_requires, test_extras, bef
{environment_exports} {environment_exports}
# check the active python and pip are in PYBIN # check the active python and pip are in PYBIN
# if `test` returns false, the script will exit due to errexit if [ "$(which pip)" != "$PYBIN/pip" ]; then
test "$(which pip)" = "$PYBIN/pip" echo "cibuildwheel: python available on PATH doesn't match our installed instance. If you have modified PATH, ensure that you don't overwrite cibuildwheel's entry or insert python above it."
test "$(which python)" = "$PYBIN/python" exit 1
fi
if [ "$(which python)" != "$PYBIN/python" ]; then
echo "cibuildwheel: pip available on PATH doesn't match our installed instance. If you have modified PATH, ensure that you don't overwrite cibuildwheel's entry or insert pip above it."
exit 1
fi
if [ ! -z {before_build} ]; then if [ ! -z {before_build} ]; then
sh -c {before_build} sh -c {before_build}
+10 -4
View File
@@ -2,6 +2,7 @@ import os
import shlex import shlex
import shutil import shutil
import subprocess import subprocess
import sys
import tempfile import tempfile
from collections import namedtuple from collections import namedtuple
from glob import glob from glob import glob
@@ -137,15 +138,20 @@ def build(project_dir, output_dir, test_command, test_requires, test_extras, bef
# check what version we're on # check what version we're on
call(['which', 'python'], env=env) call(['which', 'python'], env=env)
call(['python', '--version'], env=env) call(['python', '--version'], env=env)
# TODO Cleanup/merge with above `call` once we have `subprocess.run` after dropping Python 2 support? which_python = subprocess.check_output(['which', 'python'], env=env, universal_newlines=True).strip()
assert subprocess.check_output(['which', 'python'], env=env, universal_newlines=True).strip() == '/tmp/cibw_bin/python' if which_python != '/tmp/cibw_bin/python':
print("cibuildwheel: python available on PATH doesn't match our installed instance. If you have modified PATH, ensure that you don't overwrite cibuildwheel's entry or insert python above it.", file=sys.stderr)
exit(1)
# install pip & wheel # install pip & wheel
call(['python', get_pip_script], env=env, cwd="/tmp") call(['python', get_pip_script], env=env, cwd="/tmp")
assert os.path.exists(os.path.join(installation_bin_path, 'pip')) assert os.path.exists(os.path.join(installation_bin_path, 'pip'))
call(['which', 'pip'], env=env)
call(['pip', '--version'], env=env) call(['pip', '--version'], env=env)
# TODO Cleanup/merge with above `call` once we have `subprocess.run` after dropping Python 2 support? which_pip = subprocess.check_output(['which', 'pip'], env=env, universal_newlines=True).strip()
assert subprocess.check_output(['which', 'pip'], env=env, universal_newlines=True).strip() == '/tmp/cibw_bin/pip' if which_pip != '/tmp/cibw_bin/pip':
print("cibuildwheel: pip available on PATH doesn't match our installed instance. If you have modified PATH, ensure that you don't overwrite cibuildwheel's entry or insert pip above it.", file=sys.stderr)
exit(1)
call(['pip', 'install', '--upgrade', 'setuptools', 'wheel', 'delocate'], env=env) call(['pip', 'install', '--upgrade', 'setuptools', 'wheel', 'delocate'], env=env)
# setup target platform, only required for python 3.5 # setup target platform, only required for python 3.5
+9 -4
View File
@@ -1,6 +1,7 @@
import os import os
import shutil import shutil
import subprocess import subprocess
import sys
import tempfile import tempfile
from collections import namedtuple from collections import namedtuple
from glob import glob from glob import glob
@@ -141,15 +142,19 @@ def build(project_dir, output_dir, test_command, test_requires, test_extras, bef
simple_shell(['where', 'python'], env=env) simple_shell(['where', 'python'], env=env)
simple_shell(['python', '--version'], env=env) simple_shell(['python', '--version'], env=env)
simple_shell(['python', '-c', '"import struct; print(struct.calcsize(\'P\') * 8)"'], env=env) simple_shell(['python', '-c', '"import struct; print(struct.calcsize(\'P\') * 8)"'], env=env)
# TODO Cleanup/merge with above `simple_shell` once we have `subprocess.run` after dropping Python 2 support? where_python = subprocess.check_output(['where', 'python'], env=env, universal_newlines=True).splitlines()[0].strip()
assert subprocess.check_output(['where', 'python'], env=env, universal_newlines=True).splitlines()[0] == os.path.join(installation_path, 'python.exe') if where_python != os.path.join(installation_path, 'python.exe'):
print("cibuildwheel: python available on PATH doesn't match our installed instance. If you have modified PATH, ensure that you don't overwrite cibuildwheel's entry or insert python above it.", file=sys.stderr)
exit(1)
# make sure pip is installed # make sure pip is installed
if not os.path.exists(os.path.join(installation_path, 'Scripts', 'pip.exe')): if not os.path.exists(os.path.join(installation_path, 'Scripts', 'pip.exe')):
simple_shell(['python', get_pip_script], env=env, cwd="C:\\cibw") simple_shell(['python', get_pip_script], env=env, cwd="C:\\cibw")
assert os.path.exists(os.path.join(installation_path, 'Scripts', 'pip.exe')) assert os.path.exists(os.path.join(installation_path, 'Scripts', 'pip.exe'))
# TODO Cleanup/merge with above `simple_shell` once we have `subprocess.run` after dropping Python 2 support? where_pip = subprocess.check_output(['where', 'pip'], env=env, universal_newlines=True).splitlines()[0].strip()
assert subprocess.check_output(['where', 'pip'], env=env, universal_newlines=True).splitlines()[0] == os.path.join(installation_path, 'Scripts', 'pip.exe') if where_pip.strip() != os.path.join(installation_path, 'Scripts', 'pip.exe'):
print("cibuildwheel: pip available on PATH doesn't match our installed instance. If you have modified PATH, ensure that you don't overwrite cibuildwheel's entry or insert pip above it.", file=sys.stderr)
exit(1)
# prepare the Python environment # prepare the Python environment
simple_shell(['python', '-m', 'pip', 'install', '--upgrade', 'pip'], env=env) simple_shell(['python', '-m', 'pip', 'install', '--upgrade', 'pip'], env=env)