@@ -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- value.
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- program name is ``'/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- program name is ``'/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- strategies on those systems are so different that the prefix and exec-prefix are
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- side-effect of deriving the default module search path from the program name
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- Return the default module search path; this is computed from the program name
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