Skip to content

Commit 635b62a

Browse files
[3.11] gh-76773: Update docs mentioning no-longer-supported Windows versions & features (GH-92529) (GH-92608)
(cherry picked from commit f1bbcba) Co-authored-by: CAM Gerlach <[email protected]> Automerge-Triggered-By: GH:serhiy-storchaka
1 parent 8a2b3ed commit 635b62a

File tree

9 files changed

+70
-115
lines changed

9 files changed

+70
-115
lines changed

Doc/extending/windows.rst

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -106,8 +106,7 @@ Using DLLs in Practice
106106

107107

108108
Windows Python is built in Microsoft Visual C++; using other compilers may or
109-
may not work (though Borland seems to). The rest of this section is MSVC++
110-
specific.
109+
may not work. The rest of this section is MSVC++ specific.
111110

112111
When creating DLLs in Windows, you must pass :file:`pythonXY.lib` to the linker.
113112
To build two DLLs, spam and ni (which uses C functions found in spam), you could
@@ -134,4 +133,3 @@ Developer Studio will throw in a lot of import libraries that you do not really
134133
need, adding about 100K to your executable. To get rid of them, use the Project
135134
Settings dialog, Link tab, to specify *ignore default libraries*. Add the
136135
correct :file:`msvcrtxx.lib` to the list of libraries.
137-

Doc/faq/windows.rst

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,8 @@ with running programs from the Windows command line then everything will seem
2626
obvious; otherwise, you might need a little more guidance.
2727

2828
Unless you use some sort of integrated development environment, you will end up
29-
*typing* Windows commands into what is variously referred to as a "DOS window"
30-
or "Command prompt window". Usually you can create such a window from your
29+
*typing* Windows commands into what is referred to as a
30+
"Command prompt window". Usually you can create such a window from your
3131
search bar by searching for ``cmd``. You should be able to recognize
3232
when you have started such a window because you will see a Windows "command
3333
prompt", which usually looks like this:
@@ -186,9 +186,6 @@ Embedding the Python interpreter in a Windows app can be summarized as follows:
186186
by the Windows ``GetProcAddress()`` routine. Macros can make using these
187187
pointers transparent to any C code that calls routines in Python's C API.
188188

189-
Borland note: convert :file:`python{NN}.lib` to OMF format using Coff2Omf.exe
190-
first.
191-
192189
.. XXX what about static linking?
193190
194191
2. If you use SWIG, it is easy to create a Python "extension module" that will
@@ -279,4 +276,3 @@ How do I check for a keypress without blocking?
279276
Use the :mod:`msvcrt` module. This is a standard Windows-specific extension module.
280277
It defines a function ``kbhit()`` which checks whether a keyboard hit is
281278
present, and ``getch()`` which gets one character without echoing it.
282-

Doc/library/ctypes.rst

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1360,10 +1360,6 @@ way is to instantiate one of the following classes:
13601360
functions in these libraries use the ``stdcall`` calling convention, and are
13611361
assumed to return :c:type:`int` by default.
13621362

1363-
On Windows CE only the standard calling convention is used, for convenience the
1364-
:class:`WinDLL` and :class:`OleDLL` use the standard calling convention on this
1365-
platform.
1366-
13671363
The Python :term:`global interpreter lock` is released before calling any
13681364
function exported by these libraries, and reacquired afterwards.
13691365

@@ -1664,8 +1660,7 @@ See :ref:`ctypes-callback-functions` for examples.
16641660
.. function:: WINFUNCTYPE(restype, *argtypes, use_errno=False, use_last_error=False)
16651661

16661662
Windows only: The returned function prototype creates functions that use the
1667-
``stdcall`` calling convention, except on Windows CE where
1668-
:func:`WINFUNCTYPE` is the same as :func:`CFUNCTYPE`. The function will
1663+
``stdcall`` calling convention. The function will
16691664
release the GIL during the call. *use_errno* and *use_last_error* have the
16701665
same meaning as above.
16711666

Doc/library/optparse.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -131,7 +131,7 @@ option
131131
These option syntaxes are not supported by :mod:`optparse`, and they never
132132
will be. This is deliberate: the first three are non-standard on any
133133
environment, and the last only makes sense if you're exclusively targeting
134-
VMS, MS-DOS, and/or Windows.
134+
Windows or certain legacy platforms (e.g. VMS, MS-DOS).
135135

136136
option argument
137137
an argument that follows an option, is closely associated with that option,

Doc/library/os.path.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
:synopsis: Operations on pathnames.
66

77
**Source code:** :source:`Lib/posixpath.py` (for POSIX) and
8-
:source:`Lib/ntpath.py` (for Windows NT).
8+
:source:`Lib/ntpath.py` (for Windows).
99

1010
.. index:: single: path; operations
1111

Doc/library/tempfile.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@ The module defines the following user-callable items:
8484
file-like object. Whether the name can be
8585
used to open the file a second time, while the named temporary file is
8686
still open, varies across platforms (it can be so used on Unix; it cannot
87-
on Windows NT or later). If *delete* is true (the default), the file is
87+
on Windows). If *delete* is true (the default), the file is
8888
deleted as soon as it is closed.
8989
The returned object is always a file-like object whose :attr:`!file`
9090
attribute is the underlying true file object. This file-like object can

Doc/using/windows.rst

Lines changed: 51 additions & 83 deletions
Original file line numberDiff line numberDiff line change
@@ -378,7 +378,9 @@ may be changed from ``.``, and the package will be installed into a
378378
subdirectory. By default, the subdirectory is named the same as the package,
379379
and without the ``-ExcludeVersion`` option this name will include the specific
380380
version installed. Inside the subdirectory is a ``tools`` directory that
381-
contains the Python installation::
381+
contains the Python installation:
382+
383+
.. code-block:: doscon
382384
383385
# Without -ExcludeVersion
384386
> .\python.3.5.2\tools\python.exe -V
@@ -425,7 +427,7 @@ dependants, such as Idle), pip and the Python documentation are not included.
425427
.. note::
426428

427429
The embedded distribution does not include the `Microsoft C Runtime
428-
<https://www.microsoft.com/en-us/download/details.aspx?id=48145>`_ and it is
430+
<https://docs.microsoft.com/en-US/cpp/windows/latest-supported-vc-redist#visual-studio-2015-2017-2019-and-2022>`_ and it is
429431
the responsibility of the application installer to provide this. The
430432
runtime may have already been installed on a user's system previously or
431433
automatically via Windows Update, and can be detected by finding
@@ -559,27 +561,22 @@ System variables, you need non-restricted access to your machine
559561
Windows will concatenate User variables *after* System variables, which may
560562
cause unexpected results when modifying :envvar:`PATH`.
561563

562-
The :envvar:`PYTHONPATH` variable is used by all versions of Python 2 and
563-
Python 3, so you should not permanently configure this variable unless it
564-
only includes code that is compatible with all of your installed Python
564+
The :envvar:`PYTHONPATH` variable is used by all versions of Python,
565+
so you should not permanently configure it unless the listed paths
566+
only include code that is compatible with all of your installed Python
565567
versions.
566568

567569
.. seealso::
568570

569-
https://www.microsoft.com/en-us/wdsi/help/folder-variables
570-
Environment variables in Windows NT
571-
572-
https://technet.microsoft.com/en-us/library/cc754250.aspx
573-
The SET command, for temporarily modifying environment variables
571+
https://docs.microsoft.com/en-us/windows/win32/procthread/environment-variables
572+
Overview of environment variables on Windows
574573

575-
https://technet.microsoft.com/en-us/library/cc755104.aspx
576-
The SETX command, for permanently modifying environment variables
574+
https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/set_1
575+
The ``set`` command, for temporarily modifying environment variables
577576

578-
https://support.microsoft.com/en-us/help/310519/how-to-manage-environment-variables-in-windows-xp
579-
How To Manage Environment Variables in Windows XP
577+
https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/setx
578+
The ``setx`` command, for permanently modifying environment variables
580579

581-
https://www.chem.gla.ac.uk/~louis/software/faq/q1.html
582-
Setting Environment variables, Louis J. Farrugia
583580

584581
.. _windows-path-mod:
585582

@@ -677,48 +674,40 @@ From the command-line
677674
System-wide installations of Python 3.3 and later will put the launcher on your
678675
:envvar:`PATH`. The launcher is compatible with all available versions of
679676
Python, so it does not matter which version is installed. To check that the
680-
launcher is available, execute the following command in Command Prompt:
681-
682-
::
677+
launcher is available, execute the following command in Command Prompt::
683678

684679
py
685680

686681
You should find that the latest version of Python you have installed is
687682
started - it can be exited as normal, and any additional command-line
688683
arguments specified will be sent directly to Python.
689684

690-
If you have multiple versions of Python installed (e.g., 2.7 and |version|) you
691-
will have noticed that Python |version| was started - to launch Python 2.7, try
692-
the command:
693-
694-
::
695-
696-
py -2.7
685+
If you have multiple versions of Python installed (e.g., 3.7 and |version|) you
686+
will have noticed that Python |version| was started - to launch Python 3.7, try
687+
the command::
697688

698-
If you want the latest version of Python 2.x you have installed, try the
699-
command:
689+
py -3.7
700690

701-
::
691+
If you want the latest version of Python 2 you have installed, try the
692+
command::
702693

703694
py -2
704695

705-
You should find the latest version of Python 2.x starts.
696+
You should find the latest version of Python 3.x starts.
706697

707-
If you see the following error, you do not have the launcher installed:
708-
709-
::
698+
If you see the following error, you do not have the launcher installed::
710699

711700
'py' is not recognized as an internal or external command,
712701
operable program or batch file.
713702

714703
Per-user installations of Python do not add the launcher to :envvar:`PATH`
715704
unless the option was selected on installation.
716705

717-
::
706+
The command::
718707

719708
py --list
720709

721-
You should see the currently installed versions of Python.
710+
displays the currently installed version(s) of Python.
722711

723712
Virtual environments
724713
^^^^^^^^^^^^^^^^^^^^
@@ -744,9 +733,7 @@ following contents
744733
import sys
745734
sys.stdout.write("hello from Python %s\n" % (sys.version,))
746735
747-
From the directory in which hello.py lives, execute the command:
748-
749-
::
736+
From the directory in which hello.py lives, execute the command::
750737

751738
py hello.py
752739

@@ -759,9 +746,9 @@ is printed. Now try changing the first line to be:
759746
760747
Re-executing the command should now print the latest Python 3.x information.
761748
As with the above command-line examples, you can specify a more explicit
762-
version qualifier. Assuming you have Python 2.6 installed, try changing the
763-
first line to ``#! python2.6`` and you should find the 2.6 version
764-
information printed.
749+
version qualifier. Assuming you have Python 3.7 installed, try changing
750+
the first line to ``#! python3.7`` and you should find the |version|
751+
version information printed.
765752

766753
Note that unlike interactive use, a bare "python" will use the latest
767754
version of Python 2.x that you have installed. This is for backward
@@ -814,8 +801,8 @@ shebang lines starting with ``/usr``.
814801
Any of the above virtual commands can be suffixed with an explicit version
815802
(either just the major version, or the major and minor version).
816803
Furthermore the 32-bit version can be requested by adding "-32" after the
817-
minor version. I.e. ``/usr/bin/python2.7-32`` will request usage of the
818-
32-bit python 2.7.
804+
minor version. I.e. ``/usr/bin/python3.7-32`` will request usage of the
805+
32-bit python 3.7.
819806

820807
.. versionadded:: 3.7
821808

@@ -908,19 +895,19 @@ Examples:
908895
``python2`` will use the latest Python 2.x version installed and
909896
the command ``python3`` will use the latest Python 3.x installed.
910897

911-
* The commands ``python3.1`` and ``python2.7`` will not consult any
898+
* The command ``python3.7`` will not consult any
912899
options at all as the versions are fully specified.
913900

914901
* If ``PY_PYTHON=3``, the commands ``python`` and ``python3`` will both use
915902
the latest installed Python 3 version.
916903

917-
* If ``PY_PYTHON=3.1-32``, the command ``python`` will use the 32-bit
918-
implementation of 3.1 whereas the command ``python3`` will use the latest
904+
* If ``PY_PYTHON=3.7-32``, the command ``python`` will use the 32-bit
905+
implementation of 3.7 whereas the command ``python3`` will use the latest
919906
installed Python (PY_PYTHON was not considered at all as a major
920907
version was specified.)
921908

922-
* If ``PY_PYTHON=3`` and ``PY_PYTHON3=3.1``, the commands
923-
``python`` and ``python3`` will both use specifically 3.1
909+
* If ``PY_PYTHON=3`` and ``PY_PYTHON3=3.7``, the commands
910+
``python`` and ``python3`` will both use specifically 3.7
924911

925912
In addition to environment variables, the same settings can be configured
926913
in the .INI file used by the launcher. The section in the INI file is
@@ -931,21 +918,21 @@ an environment variable will override things specified in the INI file.
931918

932919
For example:
933920

934-
* Setting ``PY_PYTHON=3.1`` is equivalent to the INI file containing:
921+
* Setting ``PY_PYTHON=3.7`` is equivalent to the INI file containing:
935922

936923
.. code-block:: ini
937924
938925
[defaults]
939-
python=3.1
926+
python=3.7
940927
941-
* Setting ``PY_PYTHON=3`` and ``PY_PYTHON3=3.1`` is equivalent to the INI file
928+
* Setting ``PY_PYTHON=3`` and ``PY_PYTHON3=3.7`` is equivalent to the INI file
942929
containing:
943930

944931
.. code-block:: ini
945932
946933
[defaults]
947934
python=3
948-
python3=3.1
935+
python3=3.7
949936
950937
Diagnostics
951938
-----------
@@ -1132,13 +1119,14 @@ is a collection of modules for advanced Windows-specific support. This includes
11321119
utilities for:
11331120

11341121
* `Component Object Model
1135-
<https://docs.microsoft.com/en-us/windows/desktop/com/component-object-model--com--portal>`_
1122+
<https://docs.microsoft.com/en-us/windows/win32/com/component-object-model--com--portal>`_
11361123
(COM)
11371124
* Win32 API calls
11381125
* Registry
11391126
* Event log
1140-
* `Microsoft Foundation Classes <https://msdn.microsoft.com/en-us/library/fe1cf721%28VS.80%29.aspx>`_ (MFC)
1141-
user interfaces
1127+
* `Microsoft Foundation Classes
1128+
<https://docs.microsoft.com/en-us/cpp/mfc/mfc-desktop-applications>`_
1129+
(MFC) user interfaces
11421130

11431131
`PythonWin <https://web.archive.org/web/20060524042422/
11441132
https://www.python.org/windows/pythonwin/>`_ is a sample MFC application
@@ -1149,7 +1137,7 @@ shipped with PyWin32. It is an embeddable IDE with a built-in debugger.
11491137
`Win32 How Do I...? <http://timgolden.me.uk/python/win32_how_do_i.html>`_
11501138
by Tim Golden
11511139

1152-
`Python and COM <http://www.boddie.org.uk/python/COM.html>`_
1140+
`Python and COM <https://www.boddie.org.uk/python/COM.html>`_
11531141
by David and Paul Boddie
11541142

11551143

@@ -1163,18 +1151,6 @@ you can distribute your application without requiring your users to install
11631151
Python.
11641152

11651153

1166-
WConio
1167-
------
1168-
1169-
Since Python's advanced terminal handling layer, :mod:`curses`, is restricted to
1170-
Unix-like systems, there is a library exclusive to Windows as well: Windows
1171-
Console I/O for Python.
1172-
1173-
`WConio <http://newcenturycomputers.net/projects/wconio.html>`_ is a wrapper for
1174-
Turbo-C's :file:`CONIO.H`, used to create text user interfaces.
1175-
1176-
1177-
11781154
Compiling Python on Windows
11791155
===========================
11801156

@@ -1184,21 +1160,13 @@ latest release's source or just grab a fresh `checkout
11841160
<https://devguide.python.org/setup/#getting-the-source-code>`_.
11851161

11861162
The source tree contains a build solution and project files for Microsoft
1187-
Visual Studio 2015, which is the compiler used to build the official Python
1163+
Visual Studio, which is the compiler used to build the official Python
11881164
releases. These files are in the :file:`PCbuild` directory.
11891165

11901166
Check :file:`PCbuild/readme.txt` for general information on the build process.
11911167

1192-
11931168
For extension modules, consult :ref:`building-on-windows`.
11941169

1195-
.. seealso::
1196-
1197-
`Python + Windows + distutils + SWIG + gcc MinGW <http://sebsauvage.net/python/mingw.html>`_
1198-
or "Creating Python extensions in C/C++ with SWIG and compiling them with
1199-
MinGW gcc under Windows" or "Installing Python extension with distutils
1200-
and without Microsoft Visual C++" by Sébastien Sauvage, 2003
1201-
12021170

12031171
Other Platforms
12041172
===============
@@ -1207,12 +1175,12 @@ With ongoing development of Python, some platforms that used to be supported
12071175
earlier are no longer supported (due to the lack of users or developers).
12081176
Check :pep:`11` for details on all unsupported platforms.
12091177

1210-
* `Windows CE <http://pythonce.sourceforge.net/>`_ is still supported.
1211-
* The `Cygwin <https://cygwin.com/>`_ installer offers to install the Python
1212-
interpreter as well (cf. `Cygwin package source
1213-
<ftp://ftp.uni-erlangen.de/pub/pc/gnuwin32/cygwin/mirrors/cygnus/
1214-
release/python>`_, `Maintainer releases
1215-
<http://www.tishler.net/jason/software/python/>`_)
1178+
* `Windows CE <http://pythonce.sourceforge.net/>`_ is
1179+
`no longer supported <https://github.com/python/cpython/issues/71542>`__
1180+
since Python 3 (if it ever was).
1181+
* The `Cygwin <https://cygwin.com/>`_ installer offers to install the
1182+
`Python interpreter <https://cygwin.com/packages/summary/python3.html>`__
1183+
as well
12161184

12171185
See `Python for Windows <https://www.python.org/downloads/windows/>`_
12181186
for detailed information about platforms with pre-compiled installers.

PC/readme.txt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,16 +18,16 @@ All PC ports use this scheme to try to set up a module search path:
1818

1919
1) The script location; the current directory without script.
2020
2) The PYTHONPATH variable, if set.
21-
3) For Win32 platforms (NT/95), paths specified in the Registry.
21+
3) Paths specified in the Registry.
2222
4) Default directories lib, lib/win, lib/test, lib/tkinter;
2323
these are searched relative to the environment variable
2424
PYTHONHOME, if set, or relative to the executable and its
2525
ancestors, if a landmark file (Lib/string.py) is found ,
2626
or the current directory (not useful).
2727
5) The directory containing the executable.
2828

29-
The best installation strategy is to put the Python executable (and
30-
DLL, for Win32 platforms) in some convenient directory such as
29+
The best installation strategy is to put the Python executable and
30+
DLL in some convenient directory such as
3131
C:/python, and copy all library files and subdirectories (using XCOPY)
3232
to C:/python/lib. Then you don't need to set PYTHONPATH. Otherwise,
3333
set the environment variable PYTHONPATH to your Python search path.

0 commit comments

Comments
 (0)