mirror of
https://github.com/python/cpython.git
synced 2025-07-07 19:35:27 +00:00
bpo-37672: Switch Windows Store package to use pip.ini for user mode (GH-14939)
This commit is contained in:
parent
e018dc52d1
commit
123536fdab
4 changed files with 50 additions and 35 deletions
|
@ -122,6 +122,12 @@ set_process_name(PyConfig *config)
|
|||
break;
|
||||
}
|
||||
}
|
||||
size_t i = executable.find_last_of(L"/\\");
|
||||
if (i == std::wstring::npos) {
|
||||
executable = PROGNAME;
|
||||
} else {
|
||||
executable.replace(i + 1, std::wstring::npos, PROGNAME);
|
||||
}
|
||||
}
|
||||
|
||||
if (!home.empty()) {
|
||||
|
@ -163,10 +169,29 @@ wmain(int argc, wchar_t **argv)
|
|||
PyPreConfig preconfig;
|
||||
PyConfig config;
|
||||
|
||||
const wchar_t *moduleName = NULL;
|
||||
const wchar_t *p = wcsrchr(argv[0], L'\\');
|
||||
if (!p) {
|
||||
p = argv[0];
|
||||
}
|
||||
if (p) {
|
||||
if (*p == L'\\') {
|
||||
p++;
|
||||
}
|
||||
|
||||
if (wcsnicmp(p, L"pip", 3) == 0) {
|
||||
moduleName = L"pip";
|
||||
} else if (wcsnicmp(p, L"idle", 4) == 0) {
|
||||
moduleName = L"idlelib";
|
||||
}
|
||||
}
|
||||
|
||||
PyPreConfig_InitPythonConfig(&preconfig);
|
||||
status = Py_PreInitializeFromArgs(&preconfig, argc, argv);
|
||||
if (PyStatus_Exception(status)) {
|
||||
goto fail_without_config;
|
||||
if (!moduleName) {
|
||||
status = Py_PreInitializeFromArgs(&preconfig, argc, argv);
|
||||
if (PyStatus_Exception(status)) {
|
||||
goto fail_without_config;
|
||||
}
|
||||
}
|
||||
|
||||
status = PyConfig_InitPythonConfig(&config);
|
||||
|
@ -178,48 +203,32 @@ wmain(int argc, wchar_t **argv)
|
|||
if (PyStatus_Exception(status)) {
|
||||
goto fail;
|
||||
}
|
||||
if (moduleName) {
|
||||
config.parse_argv = 0;
|
||||
}
|
||||
|
||||
status = set_process_name(&config);
|
||||
if (PyStatus_Exception(status)) {
|
||||
goto fail;
|
||||
}
|
||||
|
||||
const wchar_t *p = _wgetenv(L"PYTHONUSERBASE");
|
||||
p = _wgetenv(L"PYTHONUSERBASE");
|
||||
if (!p || !*p) {
|
||||
_wputenv_s(L"PYTHONUSERBASE", get_user_base().c_str());
|
||||
}
|
||||
|
||||
p = wcsrchr(argv[0], L'\\');
|
||||
if (!p) {
|
||||
p = argv[0];
|
||||
}
|
||||
if (p) {
|
||||
if (*p == L'\\') {
|
||||
p++;
|
||||
if (moduleName) {
|
||||
status = PyConfig_SetString(&config, &config.run_module, moduleName);
|
||||
if (PyStatus_Exception(status)) {
|
||||
goto fail;
|
||||
}
|
||||
|
||||
const wchar_t *moduleName = NULL;
|
||||
if (wcsnicmp(p, L"pip", 3) == 0) {
|
||||
moduleName = L"pip";
|
||||
/* No longer required when pip 19.1 is added */
|
||||
_wputenv_s(L"PIP_USER", L"true");
|
||||
} else if (wcsnicmp(p, L"idle", 4) == 0) {
|
||||
moduleName = L"idlelib";
|
||||
status = PyConfig_SetString(&config, &config.run_filename, NULL);
|
||||
if (PyStatus_Exception(status)) {
|
||||
goto fail;
|
||||
}
|
||||
|
||||
if (moduleName) {
|
||||
status = PyConfig_SetString(&config, &config.run_module, moduleName);
|
||||
if (PyStatus_Exception(status)) {
|
||||
goto fail;
|
||||
}
|
||||
status = PyConfig_SetString(&config, &config.run_filename, NULL);
|
||||
if (PyStatus_Exception(status)) {
|
||||
goto fail;
|
||||
}
|
||||
status = PyConfig_SetString(&config, &config.run_command, NULL);
|
||||
if (PyStatus_Exception(status)) {
|
||||
goto fail;
|
||||
}
|
||||
status = PyConfig_SetString(&config, &config.run_command, NULL);
|
||||
if (PyStatus_Exception(status)) {
|
||||
goto fail;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue