> On 12 Jan 2022, at 22:54, Ned Deily <n...@python.org> wrote: > In theory it is possible to select which architecture a multi-arch > executable is to run under when there is more than one option by using the > "arch" command, like here to force running in Intel emulation mode under > Rosetta2 on an M1 Mac: > > arch -x86_64 /path/to/python3{x} > > But there is a big gotcha with that: if anything running under that > non-default arch Python spins off another Python in a subprocess by using the > value of sys.executable to find the running interpreter binary, the "arch > -x86_64" is effectively lost and the interpreter in the subprocess will run > in the default architecture. This happens, for instance, when running > Python's own test suite: the top-level Python process running regrtest will > be running in Intel emulation but tests running in subprocesses will still be > running in the default arm64 arch, possibly giving errors or silently > producing misleading results. Running the tests using python3{}-intel64 > avoids that problem.
Yeah, that’s why I’m staying away from universal builds for now. Often I have a situation where I run cmake which runs make which runs python to create a venv and then somebody higher up will use that venv to create something using “python" that something else will then use to build something against. The chances of this working with “arch -x86_64” are slim, if that:-) Looking at the timeline of the PowerPC->Intel transition I think most of the problem will be solved in another year, because pretty much everything will be available for arm natively. -- Jack Jansen, <jack.jan...@cwi.nl>, http://www.cwi.nl/~jack If I can't dance I don't want to be part of your revolution -- Emma Goldman
_______________________________________________ Pythonmac-SIG maillist - Pythonmac-SIG@python.org https://mail.python.org/mailman/listinfo/pythonmac-sig unsubscribe: https://mail.python.org/mailman/options/Pythonmac-SIG