mirror of
https://github.com/python/cpython.git
synced 2024-12-14 20:34:12 +08:00
331a6a56e9
* Add a whole new documentation page: "Python Initialization Configuration" * PyWideStringList_Append() return type is now PyStatus, instead of int * PyInterpreterState_New() now calls PyConfig_Clear() if PyConfig_InitPythonConfig() fails. * Rename files: * Python/coreconfig.c => Python/initconfig.c * Include/cpython/coreconfig.h => Include/cpython/initconfig.h * Include/internal/: pycore_coreconfig.h => pycore_initconfig.h * Rename structures * _PyCoreConfig => PyConfig * _PyPreConfig => PyPreConfig * _PyInitError => PyStatus * _PyWstrList => PyWideStringList * Rename PyConfig fields: * use_module_search_paths => module_search_paths_set * module_search_path_env => pythonpath_env * Rename PyStatus field: _func => func * PyInterpreterState: rename core_config field to config * Rename macros and functions: * _PyCoreConfig_SetArgv() => PyConfig_SetBytesArgv() * _PyCoreConfig_SetWideArgv() => PyConfig_SetArgv() * _PyCoreConfig_DecodeLocale() => PyConfig_SetBytesString() * _PyInitError_Failed() => PyStatus_Exception() * _Py_INIT_ERROR_TYPE_xxx enums => _PyStatus_TYPE_xxx * _Py_UnixMain() => Py_BytesMain() * _Py_ExitInitError() => Py_ExitStatusException() * _Py_PreInitializeFromArgs() => Py_PreInitializeFromBytesArgs() * _Py_PreInitializeFromWideArgs() => Py_PreInitializeFromArgs() * _Py_PreInitialize() => Py_PreInitialize() * _Py_RunMain() => Py_RunMain() * _Py_InitializeFromConfig() => Py_InitializeFromConfig() * _Py_INIT_XXX() => _PyStatus_XXX() * _Py_INIT_FAILED() => _PyStatus_EXCEPTION() * Rename 'err' PyStatus variables to 'status' * Convert RUN_CODE() macro to config_run_code() static inline function * Remove functions: * _Py_InitializeFromArgs() * _Py_InitializeFromWideArgs() * _PyInterpreterState_GetCoreConfig()
64 lines
1.7 KiB
C
64 lines
1.7 KiB
C
#ifndef Py_INTERNAL_PATHCONFIG_H
|
|
#define Py_INTERNAL_PATHCONFIG_H
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
#ifndef Py_BUILD_CORE
|
|
# error "this header requires Py_BUILD_CORE define"
|
|
#endif
|
|
|
|
typedef struct _PyPathConfig {
|
|
/* Full path to the Python program */
|
|
wchar_t *program_full_path;
|
|
wchar_t *prefix;
|
|
wchar_t *exec_prefix;
|
|
#ifdef MS_WINDOWS
|
|
wchar_t *dll_path;
|
|
#endif
|
|
/* Set by Py_SetPath(), or computed by _PyPathConfig_Init() */
|
|
wchar_t *module_search_path;
|
|
/* Python program name */
|
|
wchar_t *program_name;
|
|
/* Set by Py_SetPythonHome() or PYTHONHOME environment variable */
|
|
wchar_t *home;
|
|
/* isolated and site_import are used to set Py_IsolatedFlag and
|
|
Py_NoSiteFlag flags on Windows in read_pth_file(). These fields
|
|
are ignored when their value are equal to -1 (unset). */
|
|
int isolated;
|
|
int site_import;
|
|
} _PyPathConfig;
|
|
|
|
#define _PyPathConfig_INIT \
|
|
{.module_search_path = NULL, \
|
|
.isolated = -1, \
|
|
.site_import = -1}
|
|
/* Note: _PyPathConfig_INIT sets other fields to 0/NULL */
|
|
|
|
PyAPI_DATA(_PyPathConfig) _Py_path_config;
|
|
|
|
extern void _PyPathConfig_ClearGlobal(void);
|
|
extern PyStatus _PyPathConfig_SetGlobal(
|
|
const struct _PyPathConfig *pathconfig);
|
|
|
|
extern PyStatus _PyPathConfig_Calculate(
|
|
_PyPathConfig *pathconfig,
|
|
const PyConfig *config);
|
|
extern int _PyPathConfig_ComputeSysPath0(
|
|
const PyWideStringList *argv,
|
|
PyObject **path0);
|
|
extern int _Py_FindEnvConfigValue(
|
|
FILE *env_file,
|
|
const wchar_t *key,
|
|
wchar_t *value,
|
|
size_t value_size);
|
|
|
|
#ifdef MS_WINDOWS
|
|
extern wchar_t* _Py_GetDLLPath(void);
|
|
#endif
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
#endif /* !Py_INTERNAL_PATHCONFIG_H */
|