[3.10] gh-76773: Update docs mentioning no-longer-supported Windows versions & features (GH-92529) by miss-islington · Pull Request #92609 · python/cpython
.. code-block:: doscon
# Without -ExcludeVersion > .\python.3.5.2\tools\python.exe -V
The embedded distribution does not include the `Microsoft C Runtime <https://www.microsoft.com/en-us/download/details.aspx?id=48145>`_ and it is <https://docs.microsoft.com/en-US/cpp/windows/latest-supported-vc-redist#visual-studio-2015-2017-2019-and-2022>`_ and it is the responsibility of the application installer to provide this. The runtime may have already been installed on a user's system previously or automatically via Windows Update, and can be detected by finding
The :envvar:`PYTHONPATH` variable is used by all versions of Python 2 and Python 3, so you should not permanently configure this variable unless it only includes code that is compatible with all of your installed Python The :envvar:`PYTHONPATH` variable is used by all versions of Python, so you should not permanently configure it unless the listed paths only include code that is compatible with all of your installed Python versions.
.. seealso::
https://www.microsoft.com/en-us/wdsi/help/folder-variables Environment variables in Windows NT
https://technet.microsoft.com/en-us/library/cc754250.aspx The SET command, for temporarily modifying environment variables https://docs.microsoft.com/en-us/windows/win32/procthread/environment-variables Overview of environment variables on Windows
https://technet.microsoft.com/en-us/library/cc755104.aspx The SETX command, for permanently modifying environment variables https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/set_1 The ``set`` command, for temporarily modifying environment variables
https://support.microsoft.com/en-us/help/310519/how-to-manage-environment-variables-in-windows-xp How To Manage Environment Variables in Windows XP https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/setx The ``setx`` command, for permanently modifying environment variables
https://www.chem.gla.ac.uk/~louis/software/faq/q1.html Setting Environment variables, Louis J. Farrugia
.. _windows-path-mod:
:: launcher is available, execute the following command in Command Prompt::
py
You should find that the latest version of Python you have installed is started - it can be exited as normal, and any additional command-line arguments specified will be sent directly to Python.
If you have multiple versions of Python installed (e.g., 2.7 and |version|) you will have noticed that Python |version| was started - to launch Python 2.7, try the command:
::
py -2.7 If you have multiple versions of Python installed (e.g., 3.7 and |version|) you will have noticed that Python |version| was started - to launch Python 3.7, try the command::
If you want the latest version of Python 2.x you have installed, try the command: py -3.7
:: If you want the latest version of Python 2 you have installed, try the command::
py -2
You should find the latest version of Python 2.x starts. You should find the latest version of Python 3.x starts.
If you see the following error, you do not have the launcher installed:
:: If you see the following error, you do not have the launcher installed::
'py' is not recognized as an internal or external command, operable program or batch file.
Per-user installations of Python do not add the launcher to :envvar:`PATH` unless the option was selected on installation.
:: The command::
py --list
You should see the currently installed versions of Python. displays the currently installed version(s) of Python.
Virtual environments ^^^^^^^^^^^^^^^^^^^^
From the directory in which hello.py lives, execute the command:
:: From the directory in which hello.py lives, execute the command::
py hello.py
Re-executing the command should now print the latest Python 3.x information. As with the above command-line examples, you can specify a more explicit version qualifier. Assuming you have Python 2.6 installed, try changing the first line to ``#! python2.6`` and you should find the 2.6 version information printed. version qualifier. Assuming you have Python 3.7 installed, try changing the first line to ``#! python3.7`` and you should find the |version| version information printed.
Note that unlike interactive use, a bare "python" will use the latest version of Python 2.x that you have installed. This is for backward
.. versionadded:: 3.7
* The commands ``python3.1`` and ``python2.7`` will not consult any * The command ``python3.7`` will not consult any options at all as the versions are fully specified.
* If ``PY_PYTHON=3``, the commands ``python`` and ``python3`` will both use the latest installed Python 3 version.
* If ``PY_PYTHON=3.1-32``, the command ``python`` will use the 32-bit implementation of 3.1 whereas the command ``python3`` will use the latest * If ``PY_PYTHON=3.7-32``, the command ``python`` will use the 32-bit implementation of 3.7 whereas the command ``python3`` will use the latest installed Python (PY_PYTHON was not considered at all as a major version was specified.)
* If ``PY_PYTHON=3`` and ``PY_PYTHON3=3.1``, the commands ``python`` and ``python3`` will both use specifically 3.1 * If ``PY_PYTHON=3`` and ``PY_PYTHON3=3.7``, the commands ``python`` and ``python3`` will both use specifically 3.7
In addition to environment variables, the same settings can be configured in the .INI file used by the launcher. The section in the INI file is
For example:
* Setting ``PY_PYTHON=3.1`` is equivalent to the INI file containing: * Setting ``PY_PYTHON=3.7`` is equivalent to the INI file containing:
.. code-block:: ini
[defaults] python=3.1 python=3.7
* Setting ``PY_PYTHON=3`` and ``PY_PYTHON3=3.1`` is equivalent to the INI file * Setting ``PY_PYTHON=3`` and ``PY_PYTHON3=3.7`` is equivalent to the INI file containing:
.. code-block:: ini
[defaults] python=3 python3=3.1 python3=3.7
Diagnostics -----------
* `Component Object Model <https://docs.microsoft.com/en-us/windows/desktop/com/component-object-model--com--portal>`_ <https://docs.microsoft.com/en-us/windows/win32/com/component-object-model--com--portal>`_ (COM) * Win32 API calls * Registry * Event log * `Microsoft Foundation Classes <https://msdn.microsoft.com/en-us/library/fe1cf721%28VS.80%29.aspx>`_ (MFC) user interfaces * `Microsoft Foundation Classes <https://docs.microsoft.com/en-us/cpp/mfc/mfc-desktop-applications>`_ (MFC) user interfaces
`PythonWin <https://web.archive.org/web/20060524042422/ https://www.python.org/windows/pythonwin/>`_ is a sample MFC application
`Python and COM <http://www.boddie.org.uk/python/COM.html>`_ `Python and COM <https://www.boddie.org.uk/python/COM.html>`_ by David and Paul Boddie
WConio ------
Since Python's advanced terminal handling layer, :mod:`curses`, is restricted to Unix-like systems, there is a library exclusive to Windows as well: Windows Console I/O for Python.
`WConio <http://newcenturycomputers.net/projects/wconio.html>`_ is a wrapper for Turbo-C's :file:`CONIO.H`, used to create text user interfaces.
Compiling Python on Windows ===========================
The source tree contains a build solution and project files for Microsoft Visual Studio 2015, which is the compiler used to build the official Python Visual Studio, which is the compiler used to build the official Python releases. These files are in the :file:`PCbuild` directory.
Check :file:`PCbuild/readme.txt` for general information on the build process.
For extension modules, consult :ref:`building-on-windows`.
.. seealso::
`Python + Windows + distutils + SWIG + gcc MinGW <http://sebsauvage.net/python/mingw.html>`_ or "Creating Python extensions in C/C++ with SWIG and compiling them with MinGW gcc under Windows" or "Installing Python extension with distutils and without Microsoft Visual C++" by Sébastien Sauvage, 2003
Other Platforms ===============
* `Windows CE <http://pythonce.sourceforge.net/>`_ is still supported. * The `Cygwin <https://cygwin.com/>`_ installer offers to install the Python interpreter as well (cf. `Cygwin package source <ftp://ftp.uni-erlangen.de/pub/pc/gnuwin32/cygwin/mirrors/cygnus/ release/python>`_, `Maintainer releases <http://www.tishler.net/jason/software/python/>`_) * `Windows CE <http://pythonce.sourceforge.net/>`_ is `no longer supported <https://github.com/python/cpython/issues/71542>`__ since Python 3 (if it ever was). * The `Cygwin <https://cygwin.com/>`_ installer offers to install the `Python interpreter <https://cygwin.com/packages/summary/python3.html>`__ as well
See `Python for Windows <https://www.python.org/downloads/windows/>`_ for detailed information about platforms with pre-compiled installers.