Skip to content

Commit f1bbcba

Browse files
authored
pythongh-76773: Update docs mentioning no-longer-supported Windows versions & features (pythonGH-92529)
1 parent 7c638e6 commit f1bbcba

File tree

9 files changed

+70
-115
lines changed

9 files changed

+70
-115
lines changed

Doc/extending/windows.rst

+1-3
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

+2-6
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

+1-6
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

+1-1
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

+1-1
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

+1-1
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

+51-83
Original file line numberDiff line numberDiff line change
@@ -391,7 +391,9 @@ may be changed from ``.``, and the package will be installed into a
391391
subdirectory. By default, the subdirectory is named the same as the package,
392392
and without the ``-ExcludeVersion`` option this name will include the specific
393393
version installed. Inside the subdirectory is a ``tools`` directory that
394-
contains the Python installation::
394+
contains the Python installation:
395+
396+
.. code-block:: doscon
395397
396398
# Without -ExcludeVersion
397399
> .\python.3.5.2\tools\python.exe -V
@@ -438,7 +440,7 @@ dependants, such as Idle), pip and the Python documentation are not included.
438440
.. note::
439441

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

575-
The :envvar:`PYTHONPATH` variable is used by all versions of Python 2 and
576-
Python 3, so you should not permanently configure this variable unless it
577-
only includes code that is compatible with all of your installed Python
577+
The :envvar:`PYTHONPATH` variable is used by all versions of Python,
578+
so you should not permanently configure it unless the listed paths
579+
only include code that is compatible with all of your installed Python
578580
versions.
579581

580582
.. seealso::
581583

582-
https://www.microsoft.com/en-us/wdsi/help/folder-variables
583-
Environment variables in Windows NT
584-
585-
https://technet.microsoft.com/en-us/library/cc754250.aspx
586-
The SET command, for temporarily modifying environment variables
584+
https://docs.microsoft.com/en-us/windows/win32/procthread/environment-variables
585+
Overview of environment variables on Windows
587586

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

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

594-
https://www.chem.gla.ac.uk/~louis/software/faq/q1.html
595-
Setting Environment variables, Louis J. Farrugia
596593

597594
.. _windows-path-mod:
598595

@@ -690,48 +687,40 @@ From the command-line
690687
System-wide installations of Python 3.3 and later will put the launcher on your
691688
:envvar:`PATH`. The launcher is compatible with all available versions of
692689
Python, so it does not matter which version is installed. To check that the
693-
launcher is available, execute the following command in Command Prompt:
694-
695-
::
690+
launcher is available, execute the following command in Command Prompt::
696691

697692
py
698693

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

703-
If you have multiple versions of Python installed (e.g., 2.7 and |version|) you
704-
will have noticed that Python |version| was started - to launch Python 2.7, try
705-
the command:
706-
707-
::
708-
709-
py -2.7
698+
If you have multiple versions of Python installed (e.g., 3.7 and |version|) you
699+
will have noticed that Python |version| was started - to launch Python 3.7, try
700+
the command::
710701

711-
If you want the latest version of Python 2.x you have installed, try the
712-
command:
702+
py -3.7
713703

714-
::
704+
If you want the latest version of Python 2 you have installed, try the
705+
command::
715706

716707
py -2
717708

718-
You should find the latest version of Python 2.x starts.
709+
You should find the latest version of Python 3.x starts.
719710

720-
If you see the following error, you do not have the launcher installed:
721-
722-
::
711+
If you see the following error, you do not have the launcher installed::
723712

724713
'py' is not recognized as an internal or external command,
725714
operable program or batch file.
726715

727716
Per-user installations of Python do not add the launcher to :envvar:`PATH`
728717
unless the option was selected on installation.
729718

730-
::
719+
The command::
731720

732721
py --list
733722

734-
You should see the currently installed versions of Python.
723+
displays the currently installed version(s) of Python.
735724

736725
Virtual environments
737726
^^^^^^^^^^^^^^^^^^^^
@@ -757,9 +746,7 @@ following contents
757746
import sys
758747
sys.stdout.write("hello from Python %s\n" % (sys.version,))
759748
760-
From the directory in which hello.py lives, execute the command:
761-
762-
::
749+
From the directory in which hello.py lives, execute the command::
763750

764751
py hello.py
765752

@@ -772,9 +759,9 @@ is printed. Now try changing the first line to be:
772759
773760
Re-executing the command should now print the latest Python 3.x information.
774761
As with the above command-line examples, you can specify a more explicit
775-
version qualifier. Assuming you have Python 2.6 installed, try changing the
776-
first line to ``#! python2.6`` and you should find the 2.6 version
777-
information printed.
762+
version qualifier. Assuming you have Python 3.7 installed, try changing
763+
the first line to ``#! python3.7`` and you should find the |version|
764+
version information printed.
778765

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

833820
.. versionadded:: 3.7
834821

@@ -921,19 +908,19 @@ Examples:
921908
``python2`` will use the latest Python 2.x version installed and
922909
the command ``python3`` will use the latest Python 3.x installed.
923910

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

927914
* If ``PY_PYTHON=3``, the commands ``python`` and ``python3`` will both use
928915
the latest installed Python 3 version.
929916

930-
* If ``PY_PYTHON=3.1-32``, the command ``python`` will use the 32-bit
931-
implementation of 3.1 whereas the command ``python3`` will use the latest
917+
* If ``PY_PYTHON=3.7-32``, the command ``python`` will use the 32-bit
918+
implementation of 3.7 whereas the command ``python3`` will use the latest
932919
installed Python (PY_PYTHON was not considered at all as a major
933920
version was specified.)
934921

935-
* If ``PY_PYTHON=3`` and ``PY_PYTHON3=3.1``, the commands
936-
``python`` and ``python3`` will both use specifically 3.1
922+
* If ``PY_PYTHON=3`` and ``PY_PYTHON3=3.7``, the commands
923+
``python`` and ``python3`` will both use specifically 3.7
937924

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

945932
For example:
946933

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

949936
.. code-block:: ini
950937
951938
[defaults]
952-
python=3.1
939+
python=3.7
953940
954-
* Setting ``PY_PYTHON=3`` and ``PY_PYTHON3=3.1`` is equivalent to the INI file
941+
* Setting ``PY_PYTHON=3`` and ``PY_PYTHON3=3.7`` is equivalent to the INI file
955942
containing:
956943

957944
.. code-block:: ini
958945
959946
[defaults]
960947
python=3
961-
python3=3.1
948+
python3=3.7
962949
963950
Diagnostics
964951
-----------
@@ -1145,13 +1132,14 @@ is a collection of modules for advanced Windows-specific support. This includes
11451132
utilities for:
11461133

11471134
* `Component Object Model
1148-
<https://docs.microsoft.com/en-us/windows/desktop/com/component-object-model--com--portal>`_
1135+
<https://docs.microsoft.com/en-us/windows/win32/com/component-object-model--com--portal>`_
11491136
(COM)
11501137
* Win32 API calls
11511138
* Registry
11521139
* Event log
1153-
* `Microsoft Foundation Classes <https://msdn.microsoft.com/en-us/library/fe1cf721%28VS.80%29.aspx>`_ (MFC)
1154-
user interfaces
1140+
* `Microsoft Foundation Classes
1141+
<https://docs.microsoft.com/en-us/cpp/mfc/mfc-desktop-applications>`_
1142+
(MFC) user interfaces
11551143

11561144
`PythonWin <https://web.archive.org/web/20060524042422/
11571145
https://www.python.org/windows/pythonwin/>`_ is a sample MFC application
@@ -1162,7 +1150,7 @@ shipped with PyWin32. It is an embeddable IDE with a built-in debugger.
11621150
`Win32 How Do I...? <http://timgolden.me.uk/python/win32_how_do_i.html>`_
11631151
by Tim Golden
11641152

1165-
`Python and COM <http://www.boddie.org.uk/python/COM.html>`_
1153+
`Python and COM <https://www.boddie.org.uk/python/COM.html>`_
11661154
by David and Paul Boddie
11671155

11681156

@@ -1176,18 +1164,6 @@ you can distribute your application without requiring your users to install
11761164
Python.
11771165

11781166

1179-
WConio
1180-
------
1181-
1182-
Since Python's advanced terminal handling layer, :mod:`curses`, is restricted to
1183-
Unix-like systems, there is a library exclusive to Windows as well: Windows
1184-
Console I/O for Python.
1185-
1186-
`WConio <http://newcenturycomputers.net/projects/wconio.html>`_ is a wrapper for
1187-
Turbo-C's :file:`CONIO.H`, used to create text user interfaces.
1188-
1189-
1190-
11911167
Compiling Python on Windows
11921168
===========================
11931169

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

11991175
The source tree contains a build solution and project files for Microsoft
1200-
Visual Studio 2015, which is the compiler used to build the official Python
1176+
Visual Studio, which is the compiler used to build the official Python
12011177
releases. These files are in the :file:`PCbuild` directory.
12021178

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

1205-
12061181
For extension modules, consult :ref:`building-on-windows`.
12071182

1208-
.. seealso::
1209-
1210-
`Python + Windows + distutils + SWIG + gcc MinGW <http://sebsauvage.net/python/mingw.html>`_
1211-
or "Creating Python extensions in C/C++ with SWIG and compiling them with
1212-
MinGW gcc under Windows" or "Installing Python extension with distutils
1213-
and without Microsoft Visual C++" by Sébastien Sauvage, 2003
1214-
12151183

12161184
Other Platforms
12171185
===============
@@ -1220,12 +1188,12 @@ With ongoing development of Python, some platforms that used to be supported
12201188
earlier are no longer supported (due to the lack of users or developers).
12211189
Check :pep:`11` for details on all unsupported platforms.
12221190

1223-
* `Windows CE <http://pythonce.sourceforge.net/>`_ is still supported.
1224-
* The `Cygwin <https://cygwin.com/>`_ installer offers to install the Python
1225-
interpreter as well (cf. `Cygwin package source
1226-
<ftp://ftp.uni-erlangen.de/pub/pc/gnuwin32/cygwin/mirrors/cygnus/
1227-
release/python>`_, `Maintainer releases
1228-
<http://www.tishler.net/jason/software/python/>`_)
1191+
* `Windows CE <http://pythonce.sourceforge.net/>`_ is
1192+
`no longer supported <https://github.com/python/cpython/issues/71542>`__
1193+
since Python 3 (if it ever was).
1194+
* The `Cygwin <https://cygwin.com/>`_ installer offers to install the
1195+
`Python interpreter <https://cygwin.com/packages/summary/python3.html>`__
1196+
as well
12291197

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

PC/readme.txt

+3-3
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)