failing to build a windows python38 wheel

Robin Becker <[email protected]> Tue, 29 Oct 2019 12:53:33 +0000
Newsgroups gmane.comp.python.distutils.devel
Message-ID <[email protected]>
Hi, I am trying to use the technique of pillow to pre-emptively build windows 38 wheel for x_64 and also i686.

I used https://github.com/matthew-brett/multibuild/blob/devel/install_python.ps1 as a starting point, but made the 
version stuff explicit so my install ps1 looks like

> # Install specified Python version.
> # Install only if:
> #    Our current matrix entry uses this Python version AND
> #    Python version is not already available.
> Write-Host "install_python.ps1 PYTHON=Python${env:PYVER}" -ForegroundColor Yellow
> 
> $PYTHON="C:\Python${env:PYVER}"
> $py_exe = "${PYTHON}\Python.exe"
> Write-Host "py_exe: ${py_exe}" -ForegroundColor Yellow
> 
> if ( [System.IO.File]::Exists($py_exe) ) {
> 	Write-Host "${py_exe} apparently exists" -ForegroundColor Red
>     exit 0
> }
> if ($PYTHON -eq "C:\Python38-x64") {
>     $exe_suffix="-amd64"
> 	$req_ver="3.8.0"
> 	$req_dir="3.8.0"
> } elseif ($PYTHON -eq "C:\Python38") {
>     $exe_suffix=""
> 	$req_ver="3.8.0"
> 	$req_dir="3.8.0"
> } else {
> 	Write-Host "python undiscovered" -ForegroundColor Red
>     exit 0
> }
> 
> $py_url = "https://www.python.org/ftp/python"
> Write-Host "Installing Python ${req_ver}$exe_suffix..." -ForegroundColor Yellow
> $exePath = "$env:TEMP\python-${req_ver}${exe_suffix}.exe"
> $downloadFile = "$py_url/${req_dir}/python-${req_ver}${exe_suffix}.exe"
> 
> Write-Host "exePath=${exePath} downloadFile=${downloadFile}"
> 
> Write-Host "Downloading $downloadFile..."
> (New-Object Net.WebClient).DownloadFile($downloadFile, $exePath)
> Write-Host "Installing..."
> cmd /c start /wait $exePath /quiet TargetDir="$PYTHON" Shortcuts=0 Include_launcher=0 InstallLauncherAllUsers=0
> Write-Host "Python ${req_ver} installed to $PYTHON"
> 
> echo "$(& $py_exe --version 2> $null)"

the appveyor log reoports this as working so there I see this reported

> install_python.ps1 PYTHON=Python38-x64
> py_exe: C:\Python38-x64\Python.exe
> Installing Python 3.8.0-amd64...
> exePath=C:\Users\appveyor\AppData\Local\Temp\1\python-3.8.0-amd64.exe downloadFile=https://www.python.org/ftp/python/3.8.0/python-3.8.0-amd64.exe
> Downloading https://www.python.org/ftp/python/3.8.0/python-3.8.0-amd64.exe...
> Installing...
> Python 3.8.0 installed to C:\Python38-x64
> Python 3.8.0

I then used this python to build a reportlab wheel; that was reported as

C:\projects\reportlab\dist\reportlab-3.5.32-cp38-cp38m-win_amd64.whl

I loaded this wheel onto a windows 10 machine which reports itself as 64-bit OS x64-based processor

I installed Python 3.8 and used it to create a virtualenv; the venv python reports itself as Python 3.8.0 (64-bit), but 
when run it says Python 3.8.0 ........ [MSC v.1916 64 bit (AMD64)] on win32

The real problem is that the virtualenv pip wuill not install my wheel the error says

ERROR: reportlab-3.5.32-cp38-cp38m-win_amd64.whl is not a supported wheel on this platform.

I have already built reportlab-3.5.32-cp37-cp37m-win_amd64.whl as part of the standard appveyor process and that 
installs fine into a virtualenv built for Python 3.7.5.

I am slightly mystified can anyone suggest what I am doing wrong?
-- 
Robin Becker
--
Distutils-SIG mailing list -- [email protected]
To unsubscribe send an email to [email protected]
https://mail.python.org/mailman3/lists/distutils-sig.python.org/
Message archived at https://mail.python.org/archives/list/[email protected]/message/3JVKH2WNWQQSNXLASR3J7UVJYFQJULNJ/