<p dir="ltr"><br>
</p>
<p dir="ltr">On Sat, 10 Oct 2015 20:53 Laura Creighton <<a href="mailto:lac@openend.se">lac@openend.se</a>> wrote:</p>
<blockquote><p dir="ltr">(note, I currently don't have mail delivery on for distutils. I could<br>
change this, but right now I don't think I have a lot to contribute.<br>
This is just a warning).</p>
<p dir="ltr">If you have old windows hardware, which does not support SSE2, and<br>
windows 7, you can build your own python 3.5. This will work. But<br>
wheels won't, you will need to build them from source as well.<br>
see: <a href="http://bugs.python.org/issue25361">http://</a><a href="http://bugs.python.org/issue25361">bugs.python.org</a><a href="http://bugs.python.org/issue25361">/issue25361</a></p>
<p dir="ltr">This means that wheels could start failing. It would be good if<br>
the wheels themselves could detect this problem and protest in a<br>
reasonable fashion, but I have no idea if this is possible. In any<br>
case, I thought you needed to know.</p>
</blockquote>
<blockquote><p dir="ltr"><br>
</p>
</blockquote>
<p dir="ltr"><br>
There is no way for wheels to do this. A wheel is just a zip file with a standardised layout. Pip just extracts the zip, reads the metadata and copies the files to the appropriate locations. The metadata has no way to describe the fact that it the wheel contains SSE2 dependent binaries. The standard tools used to create wheels don't know anything about the contents of the compiled binaries so they don't really have a way to detect that the wheel depends on SSE2.</p>
<p dir="ltr">Really this is just a case of an unsupported platform. It's unfortunate that CPython doesn't properly support this hardware but I think it's reasonable that if you have to build your interpreter from source then you have to build your extension modules as well.</p>
<p dir="ltr">I'm not sure of a robust solution to detecting the problem at install time. Extension module authors can only really guarantee that their Windows binaries are compatible with standard released binaries. So if someone builds their own interpreter using different compiler options then there's no real way for pip or the extension module author to know if the binaries will be compatible. So either pip rejects all binaries for a non standard interpreter build or it installs them and hopes for the best.</p>
<p dir="ltr">--<br>
Oscar</p>