On 12/22/2023 7:36 AM, Sibylle Koczian via Python-list wrote:
Hello,

I always install Python on Windows in the same manner:

- Python is not on the path,
- it is installed for all users,
- the Python Launcher is installed for all users,
- the file types .py, .pyw etc. are associated with Python.

My shebang line is usually "#!/usr/bin/env python3".

This has always worked well. I could run Python scripts in a console
window entering just the script name, by double clicking in the explorer
or using WIN+r; the two last variants for GUI or for scripts with
something like "input('Leave with Enter')" at the end.

Now I've got a new computer with Windows 11 and I've installed Python
3.12.1. On my older machine it's Windows 10 and Python 3.11.5. Reading
the Python documentation it seems my shebang lines should work as before
- but they don't. The error message:

"Unable to create process using 'C:\usr\bin\env\python
"C:\Eigen\Src\launcher_versuche.py" ': Das System kann die angegebene
Datei nicht finden."

Without the "env" in the shebang line and only without it everything
works as expected - but that's contrary to the documentation, isn't it?

How is a path for a linux location going to work on a Windows machine? On Windows, when you click on a script the OS tries to find the program that has been registered to run that script. Python would not have been installed to "C:\usr\bin\env\python".

On my Windows 10 machine, Python scripts run without a shebang line. Perhaps Windows 11 has added the ability to use one, but then you would need to use the actual location of your Python executable.

If you have several Python installations, it's better to run Python scripts using the "py" launcher, because Windows may have the wrong idea about which version to use. The "where" command on my computer shows Python 3.9, but I'm actually using Python 12.

--
https://mail.python.org/mailman/listinfo/python-list

Reply via email to