any wheel experts here?

Oscar Benjamin oscar.j.benjamin at gmail.com
Wed Jan 22 06:01:32 EST 2014


On Wed, Jan 22, 2014 at 10:49:29AM +0000, Robin Becker wrote:
> I'm trying to use --plat-name in
> 
> python33 setup.py bdist_wheel --plat-name=win-amd64
> 
> I have a patched distutils package on my path that does allow me to
> do cross platform builds with normal distutils setup.py.
> 
> However, I noticed immediately that my allegedly amd64 build is saying things like
> 
> running bdist_wheel
> running build
> running build_py
> copying src\reportlab\lib\hyphen.mashed -> build\lib.win32-3.3\reportlab\lib
> running build_ext
> installing to build\bdist.win32\wheel
> running install
> running install_lib
> creating build\bdist.win32\wheel
> creating build\bdist.win32\wheel\reportlab
> creating build\bdist.win32\wheel\reportlab\fonts
> 
> and later on it crashes with
> 
> Traceback (most recent call last):
>   File "setup.py", line 541, in <module>
>     main()
>   File "setup.py", line 530, in main
>     ext_modules =   EXT_MODULES,
>   File "c:\ux\ExeBuilder\py33\distutils\core.py", line 148, in setup
>     dist.run_commands()
>   File "c:\ux\ExeBuilder\py33\distutils\dist.py", line 929, in run_commands
>     self.run_command(cmd)
>   File "c:\ux\ExeBuilder\py33\distutils\dist.py", line 948, in run_command
>     cmd_obj.run()
>   File
> "C:\code\hg-repos\py33\lib\site-packages\wheel\bdist_wheel.py", line
> 207, in run
>     archive_basename = self.get_archive_basename()
>   File
> "C:\code\hg-repos\py33\lib\site-packages\wheel\bdist_wheel.py", line
> 156, in get_archive_basename
>     impl_tag, abi_tag, plat_tag = self.get_tag()
>   File
> "C:\code\hg-repos\py33\lib\site-packages\wheel\bdist_wheel.py", line
> 150, in get_tag
>     assert tag == supported_tags[0]
> AssertionError
> 
> so I guess that wheel doesn't support the idea of cross platform
> building on windows. Can anyone more on the bleeding edge confirm
> this?

In principle the wheel format support any kind of cross-building. It's
possible though that the current wheel library has a bug that prevents this
somehow or that you've monkeypatched distutils/setuptools in such a way that
isn't compatible with bdist_wheel.

It may be that the bdist_wheel command itself does not support cross-building
but the wheel format certainly does, and perhaps the wheel library does if you
import it directly.

> I can guess that somewhere in wheel the plat-name argument is not
> being passed on to distutils bdist, but in addition something about
> the platform name is causing the crash later on.

Sounds reasonable. I don't know the answer or whether anyone else on this list
will but you can definitely find the relevant developers at this mailing list:
https://mail.python.org/mailman/listinfo/distutils-sig/


Oscar



More information about the Python-list mailing list