@@ -77,10 +77,7 @@ The following functions can be safely called before Python is initialized:
7777
7878   Despite their apparent similarity to some of the functions listed above,
7979   the following functions **should not be called ** before the interpreter has
80-    been initialized: :c:func: `Py_EncodeLocale `, :c:func: `Py_GetPath `,
81-    :c:func: `Py_GetPrefix `, :c:func: `Py_GetExecPrefix `,
82-    :c:func: `Py_GetProgramFullPath `, :c:func: `Py_GetPythonHome `,
83-    :c:func: `Py_GetProgramName `, :c:func: `PyEval_InitThreads `, and
80+    been initialized: :c:func: `Py_EncodeLocale `, :c:func: `PyEval_InitThreads `, and
8481   :c:func: `Py_RunMain `.
8582
8683
@@ -145,9 +142,6 @@ to 1 and ``-bb`` sets :c:data:`Py_BytesWarningFlag` to 2.
145142   :c:member: `PyConfig.pathconfig_warnings ` should be used instead, see
146143   :ref: `Python Initialization Configuration  <init-config >`.
147144
148-    Suppress error messages when calculating the module search path in
149-    :c:func: `Py_GetPath `.
150- 
151145   Private flag used by ``_freeze_module `` and ``frozenmain `` programs.
152146
153147   .. deprecated-removed :: 3.12 3.15 
@@ -203,7 +197,7 @@ to 1 and ``-bb`` sets :c:data:`Py_BytesWarningFlag` to 2.
203197
204198   Set by the :option: `-i ` option.
205199
206-    .. deprecated :: 3.12 
200+    .. deprecated-removed  :: 3.12 3.15  
207201
208202.. c :var :: int  Py_IsolatedFlag 
209203
@@ -586,7 +580,6 @@ Process-wide parameters
586580   .. index :: 
587581      single: Py_Initialize() 
588582      single: main() 
589-       single: Py_GetPath() 
590583
591584   This API is kept for backward compatibility: setting 
592585   :c:member: `PyConfig.program_name ` should be used instead, see :ref: `Python  
@@ -596,7 +589,7 @@ Process-wide parameters
596589   the first time, if it is called at all.  It tells the interpreter the value 
597590   of the ``argv[0] `` argument to the :c:func: `main ` function of the program 
598591   (converted to wide characters). 
599-    This is used by :c:func:`Py_GetPath` and  some other functions below to find 
592+    This is used by some other functions below to find 
600593   the Python run-time libraries relative to the interpreter executable.  The 
601594   default value is ``'python'``.  The argument should point to a 
602595   zero-terminated wide character string in static storage whose contents will not 
@@ -609,146 +602,6 @@ Process-wide parameters
609602   .. deprecated-removed:: 3.11 3.15 
610603
611604
612- .. c:function:: wchar_t* Py_GetProgramName() 
613- 
614-    Return the program name set with :c:member:`PyConfig.program_name`, or the default. 
615-    The returned string points into static storage; the caller should not modify its 
616- 
617- 
618-    This function should not be called before :c:func: `Py_Initialize `, otherwise 
619-    it returns ``NULL ``. 
620- 
621-    .. versionchanged :: 3.10  
622-       It now returns ``NULL `` if called before :c:func: `Py_Initialize `. 
623- 
624-    .. deprecated-removed :: 3.13 3.15  
625-       Use :c:func: `PyConfig_Get("executable") <PyConfig_Get> ` 
626-       (:data: `sys.executable `) instead. 
627- 
628- 
629- .. c:function:: wchar_t* Py_GetPrefix() 
630- 
631-    Return the *prefix* for installed platform-independent files. This is derived 
632-    through a number of complicated rules from the program name set with 
633-    :c:member:`PyConfig.program_name` and some environment variables; for  example, if  the 
634- '/usr/local/bin/python' ``, the prefix is ``'/usr/local' ``. The
635-    returned string points into static storage; the caller should not modify its 
636-    value.  This corresponds to the :makevar: `prefix ` variable in the top-level 
637-    :file: `Makefile ` and the :option: `--prefix ` argument to the :program: `configure ` 
638-    script at build time.  The value is available to Python code as ``sys.base_prefix ``. 
639-    It is only useful on Unix.  See also the next function. 
640- 
641-    This function should not be called before :c:func: `Py_Initialize `, otherwise 
642-    it returns ``NULL ``. 
643- 
644-    .. versionchanged :: 3.10  
645-       It now returns ``NULL `` if called before :c:func: `Py_Initialize `. 
646- 
647-    .. deprecated-removed :: 3.13 3.15  
648-       Use :c:func: `PyConfig_Get("base_prefix") <PyConfig_Get> ` 
649-       (:data: `sys.base_prefix `) instead. Use :c:func:`PyConfig_Get("prefix") 
650-       <PyConfig_Get>` (:data: `sys.prefix `) if :ref:`virtual environments 
651-       <venv-def>` need to be handled. 
652- 
653- 
654- .. c:function:: wchar_t* Py_GetExecPrefix() 
655- 
656-    Return the *exec-prefix* for installed platform-*dependent* files.  This is 
657-    derived through a number of complicated rules from the program name set with 
658-    :c:member:`PyConfig.program_name` and some environment variables; for  example, if  the 
659- '/usr/local/bin/python' ``, the exec-prefix is
660-    ``'/usr/local' ``.  The returned string points into static storage; the caller 
661-    should not modify its value.  This corresponds to the :makevar: `exec_prefix ` 
662-    variable in the top-level :file: `Makefile ` and the ``--exec-prefix `` 
663-    argument to the :program: `configure ` script at build  time.  The value is 
664-    available to Python code as ``sys.base_exec_prefix ``.  It is only useful on 
665-    Unix. 
666- 
667-    Background: The exec-prefix differs from the prefix when platform dependent 
668-    files (such as executables and shared libraries) are installed in a different 
669-    directory tree.  In a typical installation, platform dependent files may be 
670-    installed in the :file:`/usr/local/plat` subtree while platform independent may 
671-    be installed in :file:`/usr/local`. 
672- 
673-    Generally speaking, a platform is a combination of hardware and software 
674-    families, e.g.  Sparc machines running the Solaris 2.x operating system are 
675-    considered the same platform, but Intel machines running Solaris 2.x are another 
676-    platform, and Intel machines running Linux are yet another platform.  Different 
677-    major revisions of the same operating system generally also form different 
678-    platforms.  Non-Unix operating systems are a different story; the installation 
679- 
680-    meaningless, and set to the empty string. Note that compiled Python bytecode
681-    files are platform independent (but not independent from the Python version by
682-    which they were compiled!).
683- 
684-    System administrators will know how to configure the :program: `mount ` or
685-    :program: `automount ` programs to share :file: `/usr/local ` between platforms
686-    while having :file: `/usr/local/plat ` be a different filesystem for each
687-    platform.
688- 
689-    This function should not be called before :c:func: `Py_Initialize `, otherwise
690-    it returns ``NULL ``.
691- 
692-    .. versionchanged :: 3.10 
693-       It now returns ``NULL `` if called before :c:func: `Py_Initialize `.
694- 
695-    .. deprecated-removed :: 3.13 3.15 
696-       Use :c:func: `PyConfig_Get("base_exec_prefix") <PyConfig_Get> `
697-       (:data: `sys.base_exec_prefix `) instead. Use
698-       :c:func: `PyConfig_Get("exec_prefix") <PyConfig_Get> `
699-       (:data: `sys.exec_prefix `) if :ref: `virtual environments  <venv-def >` need
700-       to be handled.
701- 
702- .. c :function :: wchar_t * Py_GetProgramFullPath () 
703- 
704-    .. index:: 
705-       single: executable (in module sys) 
706- 
707-    Return the full program name of the Python executable; this is  computed as a 
708- 
709-    (set by :c:member: `PyConfig.program_name `). The returned string points into
710-    static storage; the caller should not modify its value.  The value is available
711-    to Python code as ``sys.executable ``.
712- 
713-    This function should not be called before :c:func: `Py_Initialize `, otherwise
714-    it returns ``NULL ``.
715- 
716-    .. versionchanged :: 3.10 
717-       It now returns ``NULL `` if called before :c:func: `Py_Initialize `.
718- 
719-    .. deprecated-removed :: 3.13 3.15 
720-       Use :c:func: `PyConfig_Get("executable") <PyConfig_Get> `
721-       (:data: `sys.executable `) instead.
722- 
723- 
724- .. c :function :: wchar_t * Py_GetPath () 
725- 
726-    .. index:: 
727-       triple: module; search; path 
728-       single: path (in module sys) 
729- 
730- 
731-    (set by :c:member: `PyConfig.program_name `) and some environment variables.
732-    The returned string consists of a series of directory names separated by a
733-    platform dependent delimiter character.  The delimiter character is ``':' ``
734-    on Unix and macOS, ``';' `` on Windows.  The returned string points into
735-    static storage; the caller should not modify its value.  The list
736-    :data: `sys.path ` is initialized with this value on interpreter startup; it
737-    can be (and usually is) modified later to change the search path for loading
738-    modules.
739- 
740-    This function should not be called before :c:func: `Py_Initialize `, otherwise
741-    it returns ``NULL ``.
742- 
743-    ..  XXX should give the exact rules 
744- 
745- versionchanged :: 3.10 
746-       It now returns ``NULL `` if called before :c:func: `Py_Initialize `.
747- 
748-    .. deprecated-removed :: 3.13 3.15 
749-       Use :c:func: `PyConfig_Get("module_search_paths") <PyConfig_Get> `
750-       (:data: `sys.path `) instead.
751- 
752605.. c:function:: const  char* Py_GetVersion() 
753606
754607   Return the version of this Python interpreter.  This is a string that looks 
@@ -919,23 +772,6 @@ Process-wide parameters
919772   .. deprecated-removed:: 3.11 3.15 
920773
921774
922- .. c:function:: wchar_t* Py_GetPythonHome() 
923- 
924-    Return the default "  home" , that is, the value set by
925-    :c:member:`PyConfig.home`, or the value of the :envvar:`PYTHONHOME` 
926-    environment variable if it is set. 
927- 
928-    This function should not be called before :c:func:`Py_Initialize`, otherwise 
929-    it returns ``NULL``. 
930- 
931-    .. versionchanged:: 3.10 
932-       It now returns ``NULL`` if called before :c:func:`Py_Initialize`. 
933- 
934-    .. deprecated-removed:: 3.13 3.15 
935-       Use :c:func:`PyConfig_Get("  home" ) <PyConfig_Get>` or the
936-       :envvar:`PYTHONHOME` environment variable instead. 
937- 
938- 
939775.. _threads: 
940776
941777Thread State and the Global Interpreter Lock 
0 commit comments