• Home
  • Raw
  • Download

Lines Matching +full:python +full:- +full:version

3 .. _using-on-windows:
6 Using Python on Windows
12 This document aims to give an overview of Windows-specific behaviour you should
13 know about when using Python on Microsoft Windows.
16 supported installation of Python. To make Python available, the CPython team
18 <https://www.python.org/downloads/>`_ for many years. These installers
19 are primarily intended to add a per-user installation of Python, with the
22 available for application-local distributions.
24 As specified in :pep:`11`, a Python release only supports a Windows platform
26 Python |version| supports Windows 8.1 and newer. If you require Windows 7
27 support, please install Python 3.8.
32 :ref:`windows-full` contains all components and is the best option for
33 developers using Python for any kind of project.
35 :ref:`windows-store` is a simple installation of Python that is suitable for
38 programs. It also provides many convenient commands for launching Python and
41 :ref:`windows-nuget` are lightweight installations intended for continuous
42 integration systems. It can be used to build Python packages or run scripts,
45 :ref:`windows-embeddable` is a minimal package of Python suitable for
49 .. _windows-full:
55 ------------------
57 Four Python |version| installers are available for download - two each for the
58 32-bit and 64-bit versions of the interpreter. The *web installer* is a small
62 features. See :ref:`install-layout-option` for other ways to avoid downloading
74 * Python will be installed into your user directory
82 install, the installation location and other options or post-install actions.
85 To perform an all-users installation, you should select "Customize
89 * Python will be installed into the Program Files directory
92 * The standard library can be pre-compiled to bytecode
96 .. _max-path:
99 --------------------------------
117 Support for long paths was enabled in Python.
119 .. _install-quiet-option:
122 ---------------------
132 +---------------------+--------------------------------------------------------+
136 +---------------------+--------------------------------------------------------+
138 +---------------------+--------------------------------------------------------+
140 +---------------------+--------------------------------------------------------+
141 | /uninstall | to remove Python (without confirmation) |
142 +---------------------+--------------------------------------------------------+
143 | /layout [directory] | to pre-download all components |
144 +---------------------+--------------------------------------------------------+
146 +---------------------+--------------------------------------------------------+
152 +---------------------------+--------------------------------------+--------------------------+
155 | InstallAllUsers | Perform a system-wide installation. | 0 |
156 +---------------------------+--------------------------------------+--------------------------+
159 +---------------------------+--------------------------------------+--------------------------+
161 | | for all-user installs | Python X.Y` or :file:`\ |
163 | | | Python X.Y` |
164 +---------------------------+--------------------------------------+--------------------------+
166 | | just-for-me installs | Programs\\Python\\\ |
169 | | | Programs\\Python\\\ |
170 | | | PythonXY-32` or |
172 | | | Programs\\Python\\\ |
173 | | | PythonXY-64` |
174 +---------------------------+--------------------------------------+--------------------------+
177 +---------------------------+--------------------------------------+--------------------------+
180 +---------------------------+--------------------------------------+--------------------------+
183 +---------------------------+--------------------------------------+--------------------------+
187 +---------------------------+--------------------------------------+--------------------------+
191 +---------------------------+--------------------------------------+--------------------------+
194 +---------------------------+--------------------------------------+--------------------------+
195 | Include_doc | Install Python manual | 1 |
196 +---------------------------+--------------------------------------+--------------------------+
198 +---------------------------+--------------------------------------+--------------------------+
202 +---------------------------+--------------------------------------+--------------------------+
203 | Include_exe | Install :file:`python.exe` and | 1 |
206 +---------------------------+--------------------------------------+--------------------------+
208 +---------------------------+--------------------------------------+--------------------------+
212 +---------------------------+--------------------------------------+--------------------------+
216 +---------------------------+--------------------------------------+--------------------------+
218 +---------------------------+--------------------------------------+--------------------------+
220 +---------------------------+--------------------------------------+--------------------------+
222 +---------------------------+--------------------------------------+--------------------------+
224 +---------------------------+--------------------------------------+--------------------------+
226 +---------------------------+--------------------------------------+--------------------------+
229 +---------------------------+--------------------------------------+--------------------------+
231 +---------------------------+--------------------------------------+--------------------------+
234 +---------------------------+--------------------------------------+--------------------------+
236 For example, to silently install a default, system-wide Python installation,
239 python-3.9.0.exe /quiet InstallAllUsers=1 PrependPath=1 Include_test=0
241 To allow users to easily install a personal copy of Python without the test
245 python-3.9.0.exe InstallAllUsers=0 Include_launcher=0 Include_test=0
249 recommended for per-user installs when there is also a system-wide installation
258 .. code-block:: xml
268 .. _install-layout-option:
271 ------------------------------
273 As some features of Python are not included in the initial installer download,
275 need, all possible components may be downloaded on-demand to create a complete
282 required files. Remember to substitute ``python-3.9.0.exe`` for the actual
288 python-3.9.0.exe /layout [optional target directory]
293 --------------------
295 Once Python has been installed, you can add or remove features through the
296 Programs and Features tool that is part of Windows. Select the Python entry and
299 "Modify" allows you to add or remove features by modifying the checkboxes -
302 need to remove and then reinstall Python completely.
307 "Uninstall" will remove Python entirely, with the exception of the
310 .. _install-freethreaded-windows:
312 Installing Free-threaded Binaries
313 ---------------------------------
322 To install pre-built binaries with free-threading enabled (see :pep:`703`), you
324 "Download free-threaded binaries" checkbox.
329 location as the main Python install. The main executable is called
331 ABI suffix. Python source files and bundled third-party dependencies are shared
334 The free-threaded version is registered as a regular Python install with the
335 tag ``3.13t`` (with a ``-32`` or ``-arm64`` suffix as normal for those
337 support ``py.exe -3.13t``. Note that the launcher will interpret ``py.exe -3``
339 free-threaded binaries over the regular ones, while ``py.exe -3.13`` will not.
341 free-threaded binaries at this time.
344 ``Include_freethreaded=1``. See :ref:`install-layout-option` for instructions on
345 pre-emptively downloading the additional binaries for offline install. The
346 options to include debug symbols and binaries also apply to the free-threaded
349 Free-threaded binaries are also available :ref:`on nuget.org <windows-nuget>`.
351 .. _windows-store:
358 The Microsoft Store package is an easily installable Python interpreter that
362 search the Microsoft Store app for "Python |version|". Ensure that the app
363 you select is published by the Python Software Foundation, and install it.
366 Python will always be available for free on the Microsoft Store. If you
369 After installation, Python may be launched by finding it in Start.
371 session by typing ``python``. Further, pip and IDLE may be used by typing
374 All three commands are also available with version number suffixes, for
376 ``python.exe`` (where ``3.x`` is the specific version you want to launch,
377 such as |version|). Open "Manage App Execution Aliases" through Start to
378 select which version of Python is associated with each command. It is
380 whichever version of ``python`` is selected.
382 Virtual environments can be created with ``python -m venv`` and activated
385 If you have installed another version of Python and added it to your
386 ``PATH`` variable, it will be available as ``python.exe`` rather than the
390 The ``py.exe`` launcher will detect this Python installation, but will prefer
393 To remove Python, open Settings and use Apps and Features, or else find
394 Python in Start and right-click to select Uninstall. Uninstalling will
395 remove all packages you installed directly into this Python installation, but
399 ------------
404 Because of restrictions on Microsoft Store apps, Python scripts may not have
409 At runtime, Python will use a private copy of well-known Windows folders and the registry.
412 :file:`C:\\Users\\<user>\\AppData\\Local\\Packages\\PythonSoftwareFoundation.Python.3.8_qbz5n2kfra8…
420 .. code-block:: python
425 …'C:\\Users\\example\\AppData\\Local\\Packages\\PythonSoftwareFoundation.Python.3.8_qbz5n2kfra8p0\\…
435 Microsoft's documentation on packaged full-trust apps, currently available at
436 `docs.microsoft.com/en-us/windows/msix/desktop/desktop-to-uwp-behind-the-scenes
437 <https://learn.microsoft.com/windows/msix/desktop/desktop-to-uwp-behind-the-scenes>`_
440 .. _windows-nuget:
447 The nuget.org package is a reduced size Python environment intended for use on
448 continuous integration and build systems that do not have a system-wide
449 install of Python. While nuget is "the package manager for .NET", it also works
450 perfectly fine for packages containing build-time tools.
452 Visit `nuget.org <https://www.nuget.org/>`_ for the most up-to-date information
453 on using nuget. What follows is a summary that is sufficient for Python
458 tool, the latest version of Python for 64-bit or 32-bit machines is installed
461 nuget.exe install python -ExcludeVersion -OutputDirectory .
462 nuget.exe install pythonx86 -ExcludeVersion -OutputDirectory .
464 To select a particular version, add a ``-Version 3.x.y``. The output directory
467 and without the ``-ExcludeVersion`` option this name will include the specific
468 version installed. Inside the subdirectory is a ``tools`` directory that
469 contains the Python installation:
471 .. code-block:: doscon
473 # Without -ExcludeVersion
474 > .\python.3.5.2\tools\python.exe -V
475 Python 3.5.2
477 # With -ExcludeVersion
478 > .\python\tools\python.exe -V
479 Python 3.5.2
482 installed side-by-side and referenced using the full path. Alternatively,
487 contains a MSBuild properties file ``python.props`` that can be used in a
488 C++ project to reference the Python install. Including the settings will
492 `www.nuget.org/packages/python <https://www.nuget.org/packages/python>`_
493 for the 64-bit version, `www.nuget.org/packages/pythonx86
494 <https://www.nuget.org/packages/pythonx86>`_ for the 32-bit version, and
496 <https://www.nuget.org/packages/pythonarm64>`_ for the ARM64 version
498 Free-threaded packages
499 ----------------------
508 Packages containing free-threaded binaries are named
509 `python-freethreaded <https://www.nuget.org/packages/python-freethreaded>`_
510 for the 64-bit version, `pythonx86-freethreaded
511 <https://www.nuget.org/packages/pythonx86-freethreaded>`_ for the 32-bit
512 version, and `pythonarm64-freethreaded
513 <https://www.nuget.org/packages/pythonarm64-freethreaded>`_ for the ARM64
514 version. These packages contain both the ``python3.13t.exe`` and
515 ``python.exe`` entry points, both of which run free threaded.
517 .. _windows-embeddable:
524 The embedded distribution is a ZIP file containing a minimal Python environment.
526 directly accessed by end-users.
530 installed packages. The standard library is included as pre-compiled and
532 ``python.exe`` and ``pythonw.exe`` are all provided. Tcl/tk (including all
533 dependents, such as Idle), pip and the Python documentation are not included.
538 …<https://learn.microsoft.com/cpp/windows/latest-supported-vc-redist#visual-studio-2015-2017-2019-a…
544 Third-party packages should be installed by the application installer alongside
546 Python installation is not supported with this distribution, though with some
548 general, third-party packages should be treated as part of the application
554 Python Application
555 ------------------
557 An application written in Python does not necessarily require users to be aware
559 private version of Python in an install package. Depending on how transparent it
565 no obvious indications that the program is running on Python: icons can be
566 customized, company and version information can be specified, and file
568 able to call ``Py_Main`` with a hard-coded command line.
571 directly calls the ``python.exe`` or ``pythonw.exe`` with the required
572 command-line arguments. In this case, the application will appear to be Python
574 running Python processes or file associations.
577 the Python executable to ensure they are available on the path. With the
581 Embedding Python
582 ----------------
585 language, and the embedded Python distribution can be used for this purpose. In
587 either invoke ``python.exe`` or directly use ``python3.dll``. For either case,
589 installation is sufficient to provide a loadable Python interpreter.
604 `ActivePython <https://www.activestate.com/products/python/>`_
605 Installer with multi-platform compatibility, documentation, PyWin32
612 "The Next Generation Python Environment and Package Manager".
615 …thought.com/hc/en-us/articles/360038600051-Canopy-GUI-end-of-life-transition-to-the-Enthought-Depl…
618 Windows-specific distribution with prebuilt scientific packages and
621 Note that these packages may not include the latest versions of Python or
622 other libraries, and are not maintained or supported by the core Python team.
626 Configuring Python
629 To run Python conveniently from a command prompt, you might consider changing
632 reliable for a single, system-wide installation. If you regularly use multiple
633 versions of Python, consider using the :ref:`launcher`.
636 .. _setting-envvars:
639 ---------------------------------------
647 .. code-block:: doscon
649 C:\>set PATH=C:\Program Files\Python 3.9;%PATH%
651 C:\>python
659 :program:`python.exe` to the start is a common way to ensure the correct version
660 of Python is launched.
666 System variables, you need non-restricted access to your machine
674 The :envvar:`PYTHONPATH` variable is used by all versions of Python,
676 only include code that is compatible with all of your installed Python
681 https://learn.microsoft.com/windows/win32/procthread/environment-variables
684 https://learn.microsoft.com/windows-server/administration/windows-commands/set_1
687 https://learn.microsoft.com/windows-server/administration/windows-commands/setx
691 .. _windows-path-mod:
693 Finding the Python executable
694 -----------------------------
698 Besides using the automatically created start menu entry for the Python
699 interpreter, you might want to start Python in the command prompt. The
702 On the first page of the installer, an option labelled "Add Python to PATH"
705 This allows you to type :command:`python` to run the interpreter, and
707 scripts with command line options, see :ref:`using-on-cmdline` documentation.
709 If you don't enable this option at install time, you can always re-run the
711 modify the :envvar:`PATH` using the directions in :ref:`setting-envvars`. You
713 of your Python installation, delimited by a semicolon from other entries. An
717 C:\WINDOWS\system32;C:\WINDOWS;C:\Program Files\Python 3.9
719 .. _win-utf8-mode:
721 UTF-8 mode
727 Page). Python uses it for the default encoding of text files (e.g.
730 This may cause issues because UTF-8 is widely used on the internet
733 You can use the :ref:`Python UTF-8 Mode <utf8-mode>` to change the default text
734 encoding to UTF-8. You can enable the :ref:`Python UTF-8 Mode <utf8-mode>` via
735 the ``-X utf8`` command line option, or the ``PYTHONUTF8=1`` environment
736 variable. See :envvar:`PYTHONUTF8` for enabling UTF-8 mode, and
737 :ref:`setting-envvars` for how to modify environment variables.
739 When the :ref:`Python UTF-8 Mode <utf8-mode>` is enabled, you can still use the
743 will affect all Python 3.7+ applications on your system.
744 If you have any Python 3.7+ applications which rely on the legacy
746 temporarily or use the ``-X utf8`` command line option.
749 Even when UTF-8 mode is disabled, Python uses UTF-8 by default
759 Python Launcher for Windows
764 The Python launcher for Windows is a utility which aids in locating and
765 executing of different Python versions. It allows scripts (or the
766 command-line) to indicate a preference for a specific Python version, and
767 will locate and execute that version.
770 appropriate version of Python. It will prefer per-user installations over
771 system-wide ones, and orders by language version rather than using the most
772 recently installed version.
777 ---------------
779 From the command-line
784 System-wide installations of Python 3.3 and later will put the launcher on your
786 Python, so it does not matter which version is installed. To check that the
791 You should find that the latest version of Python you have installed is
792 started - it can be exited as normal, and any additional command-line
793 arguments specified will be sent directly to Python.
795 If you have multiple versions of Python installed (e.g., 3.7 and |version|) you
796 will have noticed that Python |version| was started - to launch Python 3.7, try
799 py -3.7
801 If you want the latest version of Python 2 you have installed, try the
804 py -2
813 py --list
815 displays the currently installed version(s) of Python.
817 The ``-x.y`` argument is the short form of the ``-V:Company/Tag`` argument,
818 which allows selecting a specific Python runtime, including those that may have
819 come from somewhere other than python.org. Any runtime registered by following
820 :pep:`514` will be discoverable. The ``--list`` command lists all available
821 runtimes using the ``-V:`` format.
823 When using the ``-V:`` argument, specifying the Company will limit selection to
828 py -V:3
831 py -V:PythonCore/
833 # Select PythonCore's latest Python 3 runtime
834 py -V:PythonCore/3
836 The short form of the argument (``-3``) only ever selects from core Python
837 releases, and not other distributions. However, the longer form (``-V:3``) will
840 The Company is matched on the full string, case-insensitive. The Tag is matched
842 hyphen. This allows ``-V:3.1`` to match ``3.1-32``, but not ``3.10``. Tags are
844 compared using text (``-V:3.01`` does not match ``3.1``).
852 If the launcher is run with no explicit Python version specification, and a
857 the global Python version.
862 Let's create a test Python script - create a file called ``hello.py`` with the
865 .. code-block:: python
867 #! python
869 sys.stdout.write("hello from Python %s\n" % (sys.version,))
875 You should notice the version number of your latest Python 2.x installation
878 .. code-block:: python
882 Re-executing the command should now print the latest Python 3.x information.
883 As with the above command-line examples, you can specify a more explicit
884 version qualifier. Assuming you have Python 3.7 installed, try changing
886 version information printed.
888 Note that unlike interactive use, a bare "python" will use the latest
889 version of Python 2.x that you have installed. This is for backward
890 compatibility and for compatibility with Unix, where the command ``python``
891 typically refers to Python 2.
896 The launcher should have been associated with Python files (i.e. ``.py``,
898 when you double-click on one of these files from Windows explorer the launcher
900 have the script specify the version which should be used.
902 The key benefit of this is that a single launcher can support multiple Python
906 -------------
912 be used with Python scripts on Windows and the examples above demonstrate their
915 To allow shebang lines in Python scripts to be portable between Unix and
920 * ``/usr/bin/python``
921 * ``/usr/local/bin/python``
922 * ``python``
926 .. code-block:: sh
928 #! /usr/bin/python
930 The default Python or an active virtual environment will be located and used.
931 As many Python scripts written to work on Unix will already have this line,
936 Any of the above virtual commands can be suffixed with an explicit version
937 (either just the major version, or the major and minor version).
938 Furthermore the 32-bit version can be requested by adding "-32" after the
939 minor version. I.e. ``/usr/bin/python3.7-32`` will request usage of the
940 32-bit Python 3.7. If a virtual environment is active, the version will be
945 Beginning with python launcher 3.7 it is possible to request 64-bit version
946 by the "-64" suffix. Furthermore it is possible to specify a major and
947 architecture without minor (i.e. ``/usr/bin/python3-64``).
951 The "-64" suffix is deprecated, and now implies "any architecture that is
952 not provably i386/32-bit". To request a specific environment, use the new
953 :samp:`-V:{TAG}` argument with the complete tag.
957 Virtual commands referencing ``python`` now prefer an active virtual
963 Before looking for installed Python interpreters, this form will search the
964 executable :envvar:`PATH` for a Python executable matching the name provided
968 be found, but the argument starts with ``python``, it will be handled as
974 ``[commands]`` section of the launcher's :ref:`.INI file <launcher-ini>`.
981 .. code-block:: ini
984 /bin/xpython=C:\Program Files\XPython\python.exe
988 This is a convenience for Windows-only scripts, such as those generated by an
989 installer, since the behavior is not compatible with Unix-style shells.
995 --------------------------
998 Python interpreter. For example, if you have a shebang line:
1000 .. code-block:: sh
1002 #! /usr/bin/python -v
1004 Then Python will be started with the ``-v`` option
1007 -------------
1009 .. _launcher-ini:
1014 Two .ini files will be searched by the launcher - ``py.ini`` in the current
1017 used for both the 'console' version of the launcher (i.e. py.exe) and for the
1018 'windows' version (i.e. pyw.exe).
1024 Customizing default Python versions
1027 In some cases, a version qualifier can be included in a command to dictate
1028 which version of Python will be used by the command. A version qualifier
1029 starts with a major version number and can optionally be followed by a period
1030 ('.') and a minor version specifier. Furthermore it is possible to specify
1031 if a 32 or 64 bit implementation shall be requested by adding "-32" or "-64".
1033 For example, a shebang line of ``#!python`` has no version qualifier, while
1034 ``#!python3`` has a version qualifier which specifies only a major version.
1036 If no version qualifiers are found in a command, the environment
1037 variable :envvar:`PY_PYTHON` can be set to specify the default version
1040 "3.7", "3.7-32" or "3.7-64". (Note that the "-64" option is only
1041 available with the launcher included with Python 3.7 or newer.)
1043 If no minor version qualifiers are found, the environment variable
1044 ``PY_PYTHON{major}`` (where ``{major}`` is the current major version qualifier
1045 as determined above) can be set to specify the full version. If no such option
1046 is found, the launcher will enumerate the installed Python versions and use
1047 the latest minor release found for the major version, which is likely,
1048 although not guaranteed, to be the most recently installed version in that
1051 On 64-bit Windows with both 32-bit and 64-bit implementations of the same
1052 (major.minor) Python version installed, the 64-bit version will always be
1053 preferred. This will be true for both 32-bit and 64-bit implementations of the
1054 launcher - a 32-bit launcher will prefer to execute a 64-bit Python installation
1055 of the specified version if available. This is so the behavior of the launcher
1058 whether a 32 or 64-bit version of Python and corresponding launcher was
1059 installed last). As noted above, an optional "-32" or "-64" suffix can be
1060 used on a version specifier to change this behaviour.
1064 * If no relevant options are set, the commands ``python`` and
1065 ``python2`` will use the latest Python 2.x version installed and
1066 the command ``python3`` will use the latest Python 3.x installed.
1071 * If ``PY_PYTHON=3``, the commands ``python`` and ``python3`` will both use
1072 the latest installed Python 3 version.
1074 * If ``PY_PYTHON=3.7-32``, the command ``python`` will use the 32-bit
1076 installed Python (PY_PYTHON was not considered at all as a major
1077 version was specified.)
1080 ``python`` and ``python3`` will both use specifically 3.7
1093 .. code-block:: ini
1096 python=3.7
1101 .. code-block:: ini
1104 python=3
1108 -----------
1113 should allow you to see what versions of Python were located, why a
1114 particular version was chosen and the exact command-line used to execute the
1115 target Python. It is primarily intended for testing and debugging.
1118 -------
1122 launch Python. This may be useful for tools that want to use the launcher to
1123 detect and then launch Python directly. Note that the command written to
1124 standard output is always encoded using UTF-8, and may not render correctly in
1128 -----------------
1131 value), and the requested Python version is not installed but is available on
1136 to always try to install Python, even if it is detected. This is mainly intended
1140 ------------
1142 The following exit codes may be returned by the Python launcher. Unfortunately,
1143 there is no way to distinguish these from the exit code of Python itself.
1149 +-------------------+-------+-----------------------------------------------+
1153 +-------------------+-------+-----------------------------------------------+
1154 | RC_CREATE_PROCESS | 101 | Failed to launch Python. |
1155 +-------------------+-------+-----------------------------------------------+
1157 | | | need to be re-run after it completes. |
1158 +-------------------+-------+-----------------------------------------------+
1160 +-------------------+-------+-----------------------------------------------+
1163 +-------------------+-------+-----------------------------------------------+
1164 | RC_NO_PYTHON | 103 | Unable to locate the requested version. |
1165 +-------------------+-------+-----------------------------------------------+
1168 +-------------------+-------+-----------------------------------------------+
1176 These notes supplement the description at :ref:`sys-path-init` with
1186 :ref:`using-on-envvars`, its entries are added next. Note that on Windows,
1191 :samp:`\\SOFTWARE\\Python\\PythonCore\\{version}\\PythonPath` under both the
1193 semicolon-delimited path strings as their default value will cause each path
1198 "Python Home". Otherwise, the path of the main Python executable is used to
1200 the "Python Home". If a Python home is found, the relevant sub-directories
1201 added to :data:`sys.path` (``Lib``, ``plat-win``, etc) are based on that
1202 folder. Otherwise, the core Python path is constructed from the PythonPath
1205 * If the Python Home cannot be located, no :envvar:`PYTHONPATH` is specified in
1207 relative entries is used (e.g. ``.\Lib;.\plat-win``, etc).
1218 * When running :file:`python.exe`, or any other .exe in the main Python
1219 directory (either an installed version, or directly from the PCbuild
1223 * When Python is hosted in another .exe (different directory, embedded via COM,
1224 etc), the "Python Home" will not be deduced, so the core path from the
1227 * If Python can't find its home and there are no registry value (frozen .exe,
1231 For those who want to bundle Python into their application or distribution, the
1244 before launching :file:`python.exe` from your application.
1247 distribution that allows people to run :file:`python.exe` directly), ensure
1252 These will ensure that the files in a system-wide installation will not take
1256 non-standard paths in the registry and user site-packages.
1265 Add :file:`python{XX}.zip` as a potential landmark when directly adjacent
1278 Even though Python aims to be portable among all platforms, there are features
1282 The Windows-specific standard modules are documented in
1283 :ref:`mswin-specific-services`.
1286 -------
1289 is a collection of modules for advanced Windows-specific support. This includes
1293 <https://learn.microsoft.com/windows/win32/com/component-object-model--com--portal>`_
1299 <https://learn.microsoft.com/cpp/mfc/mfc-desktop-applications>`_
1303 https://www.python.org/windows/pythonwin/>`_ is a sample MFC application
1304 shipped with PyWin32. It is an embeddable IDE with a built-in debugger.
1308 `Win32 How Do I...? <https://timgolden.me.uk/python/win32_how_do_i.html>`_
1311 `Python and COM <https://www.boddie.org.uk/python/COM.html>`_
1316 ---------
1318 `cx_Freeze <https://cx-freeze.readthedocs.io/en/latest/>`_
1319 wraps Python scripts into executable Windows programs
1321 application without requiring your users to install Python.
1324 Compiling Python on Windows
1328 `source <https://www.python.org/downloads/source/>`_. You can download either the
1330 <https://devguide.python.org/setup/#get-the-source-code>`_.
1333 Visual Studio, which is the compiler used to build the official Python
1338 For extension modules, consult :ref:`building-on-windows`.
1344 With ongoing development of Python, some platforms that used to be supported
1349 `no longer supported <https://github.com/python/cpython/issues/71542>`__
1350 since Python 3 (if it ever was).
1352 `Python interpreter <https://cygwin.com/packages/summary/python3.html>`__
1355 See `Python for Windows <https://www.python.org/downloads/windows/>`_
1356 for detailed information about platforms with pre-compiled installers.