Python Forum

Full Version: What WERE They Thinking : Python 3.9x
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
On my Debian Install I loaded v3.9 in /opt and all worked out fne. It doesnt mess with system Python. All is well.

Then comes Win.
I have Win7.1. I am *not* going to update this macjhine to Win10, and Win8.1 is garbage also.

The problem is that some propellorheads decided that because Win7 is no longer 'supported' by M$, is that it is somehow a 'risk'!
I regard it as a feature. This machine has *never* been updated, as I avoid M$ as much as possible. And has never had a problem because of that.
v3.9x depends on api-ms-win-core-path-l1-1-0.dll for apparently no good reason other than to prevent Win7 usage.

The source code seems to say that Win7 is OK for now, but wont compile without api-ms-win-core-path-l1-1-0.dll.
I tried converting the install exe to msi and used orca to blank out the requirements part, but no luck. It is hardcoded into the binary.

Someone did a hack of api-ms-win-core-path-l1-1-0.dll for Blender, but did not include the function Python wanted.

So the question is:
Is there a hack, or a FAQ for getting by this nonsensical booby-trap?
I don't have a solution but just a few comments
  • You can't blame today's developers to not support every outmoded version of every operating system. It is a different job.
  • Using an old unsupported OS is the best way to waste time solving irrelevant issues. There are better things to do!
  • If you avoid Microsoft as much as possible, why do you have a Windows OS at all? Upgrade to Linux!
I have a Debian Buster install on the same machine, but also like to have my updated scripting languages on the Win platform.
Win allows me more freedom in making scripts as I prefer to have 'security' issues as a last concern. I even prefer it for Website work.

Redmond may have decided that Win7 is obsolete, but I and many others have not. While I do not expect developers to bend over backwards for compatibility, I do sorely object to them apparently going out of their way to sabotage older platforms. As I mentioned the source code for Python 3.9.5 actually seems to say that at least at one point compiling under 7 was OK. But it was then changed.

While I do have a Win10 system: i do not like it for anything other than viewing media. I am not overly fond of Win7 either, but I can hobble it to the point where I actually have more freedom under it than Linux.

Open Source is supposed to support the Four Freedoms. Ideally this would mean that developers would be careful not to blindly follow the dictates of megacorporations who love to deprecate their wares as part of their 'product cycle',
I don't think anyone's trying to "sabotage" older platforms and think it's likely just too costly to support them.

What do you mean when you say you have more freedom under Windows? I've been running Linux for a while (close to 20 years now, gosh) and can't say I've ever felt constrained by it.
(Jun-16-2021, 12:50 AM)millpond Wrote: [ -> ]The problem is that some propellorheads decided that because Win7 is no longer 'supported' by M$, is that it is somehow a 'risk'!
I regard it as a feature.

This is classic example how to shoot yourself in the foot. You get free gift and then you start to make demands and calling names on people who provided it. Which leads to burn-out of maintainers and less open source code.

I strongly recommend to read Brett Cannon's The Social Contract of Open Source. Maybe it changes your attitude, maybe not.

Quote:Open source code is like me putting a stack of USB drives with my open source code on them on my front lawn with a sign that says "FREE", and you coming by and taking a USB drive when you want the latest copy of my open source code.

That's the actual, typical relationship I have with most users of my open source code: I push out a new commit, you use it, and we never speak to each other.

With this example in mind, do you think it is reasonable to go up to my front door, knock, and then proceed to yell at me if you didn't like the software you chose to pick up off of my front yard for free? 🤨 How about leaving an angry letter in my mailbox? Or a flaming bag of 💩 on my doorstep? Or standing in the middle of the street in my town and yelling about how much you hate my software? This is what it's like when you email me angrily, open an issue in anger, or complain loudly on the internet. Does any of that seem reasonable? To me, this actually ranges from rude to unethical.

Remember that I didn't force you to take the software. The act of taking the software was done under free agency, so getting mad about the free gift of some open source code that you chose to take seems to be more your own problem than mine; you are totally capable of using that free agency again and stop using the source code.

There is also Alpha chipset example which can be used to put W7 support into perspective.
@ndc
Nobody is even remotely suggensting that anyone 'support' Win7. Python *should* be fairly independent of quirks within OS versions. Win7 has a very similar architecture to 10, without alot of extraneous garbage.
Has there been any 'costs' to the developers in folks using v3.8 on Win7? Then why 3.9, where a particular library was chosen to be incompatible.
'Security Issues' is the official reasonm but the Win platform is full of them - and never seemed to be a problem in the past.

I've been using Linux since alpha 0.9, from a BBS.
Over the years I have lost functionality for a number of utilities and even scripts, and permissions issues are an incessant annoyance. Especially with apps that wont run under a rooted account, when I have some damn good reasons to run as root.

I dont have that problem with Win. Once hacked I rarely run into permissions issues, and its usually possible to run under the System account. This is not a production machine, and I have my own security protocols.
On a year on average I spend about 30 minutes battling Win malware.
In Linux Its about 5-20 hours troubleshooting permissions issues.

@perf
Indeed, beggars cant be choosers.
If that is indeed the attitude of the developers to the community, it will be well noted.
Its one thing to go to a barbecue and get annoyed if your request for sushi is ignore. And another to be denied entrance simply because you arrived in an old car.
Guest, of course have no rights, and hosts no obligations.

NB: The developers will do as they will. I know this. My only hope was that someone had dione a hack of the dll as was done for Blender(but includes the function Python is looking for).

Or else simply wait for Cygwin to move to 3.9 (and hopefully wont sabotage the Win7 system there too).
It costs money to support an OS. The developers do not have the resources to do it.
You can pay a developer for this task or just use a modern OS.
Hint Windows 11 is coming :-D

I use Arch Linux on my Desktop for everything, inclusive Games.
On my Laptop is Ubuntu running + Windows 10 KVMs for development Software (TIA, Codesys).

On Debian you have to do some work to be able to compile a modern Python version.

https://github.com/pyenv/pyenv/wiki
sudo apt-get update; sudo apt-get install make build-essential libssl-dev zlib1g-dev \
libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm \
libncursesw5-dev xz-utils tk-dev libxml2-dev libxmlsec1-dev libffi-dev liblzma-dev
Then you can use the installer for pyenv which compiles every Python version for you:
https://github.com/pyenv/pyenv-installer
VC complains that the source files for the Win10 dll is missing during compile.
Unsure of compiling under Cygwin and its interactions with my normal Python versions and packages.

I've found the solution: MSYS (pacman -S python3.9)
Python 3.9.5 installs and fires up fine under it.
Cygwin is still at 3.8

I still dont grok the issue about OS support, or more precisely: I do not believe it.
You can have features with newer functions that might not be available in older systems. So be it. Then tell users to stick with older modules in the case of something like Python.
But the platform itself? Python 3.9 was originally designed to work with Win7. Under MSYS it works. In short, there appears to be absolutely no reason for additional 'support'.
Other than an enlarged environment, is there any other realistic functionality in Win8+ I am unaware of? Not counting, of course extended telemetry.

I have no use or particular respect for Redmond. Win is simply a microkernel architecture, that I have fairly well adapted into a Posix environment. It would be nice to be able to switch to ReacOs by the time Win11 comes out.

The biggest support issue for developers would be 2to3. Would ceasing support for it mean sabotaging future versions of Python from working with it?
Question: Is there a FAQ on the template/scaffolding used by a Python executable?

The issue: Python 3.9 works in the MSYS environment in Win7.

But in the standard environment outside MSYS it cannot find its supporting files (iie,, it looks ofr its 'encoding module') I am not sure about messing with PYTHONHOME and PYTHONPATH as I have 3 other Python versions installed, and dont want to screw anything up.

Is there a way to extract the standard install .exe so that I can get the tree files, and just dump the MSYS python3.9 into place?