Interpreter initialization and finalization¶
Veja Configuração de inicialização do Python para detalhes sobre como configurar o interpretador antes da inicialização.
Before Python initialization¶
In an application embedding Python, the Py_Initialize() function must
be called before using any other Python/C API functions; with the exception of
a few functions and the global configuration variables.
As seguintes funções podem ser seguramente chamadas antes da inicialização do Python.
Funções que inicializam o interpretador:
as funções de pré-inicialização de tempo de execução cobertas em Configuração de inicialização do Python
Funções de configuração
PyInitFrozenExtensions()as funções de configuração cobertas em Configuração de inicialização do Python
Funções informativas:
Utilitários:
o relatório de status e funções utilitárias cobertas em Configuração de inicialização do Python
Alocadores de memória:
Sincronização:
Nota
Despite their apparent similarity to some of the functions listed above,
the following functions should not be called before the interpreter has
been initialized: Py_EncodeLocale(), PyEval_InitThreads(), and
Py_RunMain().
Variáveis de configuração global¶
Python tem variáveis para a configuração global a fim de controlar diferentes características e opções. Por padrão, estes sinalizadores são controlados por opções de linha de comando.
Quando um sinalizador é definido por uma opção, o valor do sinalizador é o número de vezes que a opção foi definida. Por exemplo, -b define Py_BytesWarningFlag para 1 e -bb define Py_BytesWarningFlag para 2.
-
int Py_BytesWarningFlag¶
Esta API é mantida para compatibilidade com versões anteriores: a configuração
PyConfig.bytes_warningdeve ser usada em seu lugar, consulte Configuração de inicialização do Python.Emite um aviso ao comparar
bytesoubytearraycomstroubytescomint. Emite um erro se for maior ou igual a2.Definida pela opção
-b.Descontinuado desde a versão 3.12, removido na versão 3.15.
-
int Py_DebugFlag¶
Esta API é mantida para compatibilidade com versões anteriores: a configuração
PyConfig.parser_debugdeve ser usada em seu lugar, consulte Configuração de inicialização do Python.Ativa a saída de depuração do analisador sintático (somente para especialistas, dependendo das opções de compilação).
Definida pela a opção
-de a variável de ambientePYTHONDEBUG.Descontinuado desde a versão 3.12, removido na versão 3.15.
-
int Py_DontWriteBytecodeFlag¶
Esta API é mantida para compatibilidade com versões anteriores: a configuração
PyConfig.write_bytecodedeve ser usada em seu lugar, consulte Configuração de inicialização do Python.Se definida como diferente de zero, o Python não tentará escrever arquivos
.pycna importação de módulos fonte.Definida pela opção
-Be pela variável de ambientePYTHONDONTWRITEBYTECODE.Descontinuado desde a versão 3.12, removido na versão 3.15.
-
int Py_FrozenFlag¶
Esta API é mantida para compatibilidade com versões anteriores: a configuração
PyConfig.pathconfig_warningsdeve ser usada em seu lugar, consulte Configuração de inicialização do Python.Sinalizador privado usado pelos programas
_freeze_moduleefrozenmain.Descontinuado desde a versão 3.12, removido na versão 3.15.
-
int Py_HashRandomizationFlag¶
Esta API é mantida para compatibilidade com versões anteriores: a configuração de
PyConfig.hash_seedePyConfig.use_hash_seeddeve ser usada em seu lugar, consulte Configuração de inicialização do Python.Definida como
1se a variável de ambientePYTHONHASHSEEDestiver definida como uma string não vazia.Se o sinalizador for diferente de zero, lê a variável de ambiente
PYTHONHASHSEEDpara inicializar a semente de hash secreta.Descontinuado desde a versão 3.12, removido na versão 3.15.
-
int Py_IgnoreEnvironmentFlag¶
Esta API é mantida para compatibilidade com versões anteriores: a configuração
PyConfig.use_environmentdeve ser usada em seu lugar, consulte Configuração de inicialização do Python.Ignora todas as variáveis de ambiente
PYTHON*, por exemploPYTHONPATHePYTHONHOME, que podem estar definidas.Definida pelas opções
-Ee-I.Descontinuado desde a versão 3.12, removido na versão 3.15.
-
int Py_InspectFlag¶
Esta API é mantida para compatibilidade com versões anteriores: a configuração
PyConfig.inspectdeve ser usada em seu lugar, consulte Configuração de inicialização do Python.Quando um script é passado como primeiro argumento ou a opção
-cé usada, entre no modo interativo após executar o script ou o comando, mesmo quandosys.stdinnão parece ser um terminal.Definida pela opção
-ie pela variável de ambientePYTHONINSPECT.Descontinuado desde a versão 3.12, removido na versão 3.15.
-
int Py_InteractiveFlag¶
Esta API é mantida para compatibilidade com versões anteriores: a configuração
PyConfig.interactivedeve ser usada em seu lugar, consulte Configuração de inicialização do Python.Definida pela opção
-i.Descontinuado desde a versão 3.12, removido na versão 3.15.
-
int Py_IsolatedFlag¶
Esta API é mantida para compatibilidade com versões anteriores: a configuração
PyConfig.isolateddeve ser usada em seu lugar, consulte Configuração de inicialização do Python.Executa o Python no modo isolado. No modo isolado,
sys.pathnão contém nem o diretório do script nem o diretório de pacotes de sites do usuário.Definida pela opção
-I.Adicionado na versão 3.4.
Descontinuado desde a versão 3.12, removido na versão 3.15.
-
int Py_LegacyWindowsFSEncodingFlag¶
Esta API é mantida para compatibilidade com versões anteriores: a configuração
PyPreConfig.legacy_windows_fs_encodingdeve ser usada em seu lugar, consulte Configuração de inicialização do Python.Se o sinalizador for diferente de zero, use a codificação
mbcscom o tratador de errosreplace, em vez da codificação UTF-8 com o tratador de errossurrogatepass, para a codificação do sistema de arquivos e tratador de erros e codificação do sistema de arquivos.Definida como
1se a variável de ambientePYTHONLEGACYWINDOWSFSENCODINGestiver definida como uma string não vazia.Veja PEP 529 para mais detalhes.
Disponibilidade: Windows.
Descontinuado desde a versão 3.12, removido na versão 3.15.
-
int Py_LegacyWindowsStdioFlag¶
Esta API é mantida para compatibilidade com versões anteriores: a configuração
PyConfig.legacy_windows_stdiodeve ser usada em seu lugar, consulte Configuração de inicialização do Python.Se o sinalizador for diferente de zero, usa
io.FileIOem vez deio._WindowsConsoleIOpara fluxos padrãosys.Definida como
1se a variável de ambientePYTHONLEGACYWINDOWSSTDIOestiver definida como uma string não vazia.Veja a PEP 528 para mais detalhes.
Disponibilidade: Windows.
Descontinuado desde a versão 3.12, removido na versão 3.15.
-
int Py_NoSiteFlag¶
Esta API é mantida para compatibilidade com versões anteriores: a configuração
PyConfig.site_importdeve ser usada em seu lugar, consulte Configuração de inicialização do Python.Desabilita a importação do módulo
sitee as manipulações dependentes do site desys.pathque isso acarreta. Também desabilita essas manipulações sesitefor explicitamente importado mais tarde (chamesite.main()se você quiser que eles sejam acionados).Definida pela opção
-S.Descontinuado desde a versão 3.12, removido na versão 3.15.
-
int Py_NoUserSiteDirectory¶
Esta API é mantida para compatibilidade com versões anteriores: a configuração
PyConfig.user_site_directorydeve ser usada em seu lugar, consulte Configuração de inicialização do Python.Não adiciona o
diretório site-packages de usuário <site.USER_SITE>`asys.path.Definida pelas opções
-se-I, e pela variável de ambientePYTHONNOUSERSITE.Descontinuado desde a versão 3.12, removido na versão 3.15.
-
int Py_OptimizeFlag¶
Esta API é mantida para compatibilidade com versões anteriores: a configuração
PyConfig.optimization_leveldeve ser usada em seu lugar, consulte Configuração de inicialização do Python.Definida pela opção
-Oe pela variável de ambientePYTHONOPTIMIZE.Descontinuado desde a versão 3.12, removido na versão 3.15.
-
int Py_QuietFlag¶
Esta API é mantida para compatibilidade com versões anteriores: a configuração
PyConfig.quietdeve ser usada em seu lugar, consulte Configuração de inicialização do Python.Não exibe as mensagens de direitos autorais e de versão nem mesmo no modo interativo.
Definida pela opção
-q.Adicionado na versão 3.2.
Descontinuado desde a versão 3.12, removido na versão 3.15.
-
int Py_UnbufferedStdioFlag¶
Esta API é mantida para compatibilidade com versões anteriores: a configuração
PyConfig.buffered_stdiodeve ser usada em seu lugar, consulte Configuração de inicialização do Python.Força os fluxos stdout e stderr a não serem armazenados em buffer.
Definida pela opção
-ue pela variável de ambientePYTHONUNBUFFERED.Descontinuado desde a versão 3.12, removido na versão 3.15.
-
int Py_VerboseFlag¶
Esta API é mantida para compatibilidade com versões anteriores: a configuração
PyConfig.verbosedeve ser usada em seu lugar, consulte Configuração de inicialização do Python.Exibe uma mensagem cada vez que um módulo é inicializado, mostrando o local (nome do arquivo ou módulo embutido) de onde ele é carregado. Se maior ou igual a
2, exibe uma mensagem para cada arquivo que é verificado durante a busca por um módulo. Também fornece informações sobre a limpeza do módulo na saída.Definida pela a opção
-ve a variável de ambientePYTHONVERBOSE.Descontinuado desde a versão 3.12, removido na versão 3.15.
Inicializando e encerrando o interpretador¶
-
void Py_Initialize()¶
- Parte da ABI Estável.
Initialize the Python interpreter. In an application embedding Python, this should be called before using any other Python/C API functions; see Before Python Initialization for the few exceptions.
Isso inicializa a tabela de módulos carregados (
sys.modules) e cria os módulos fundamentaisbuiltins,__main__esys. Também inicializa o caminho de pesquisa de módulos (sys.path). Isso não definesys.argv; use a API da Configuração de inicialização do Python para isso. Isso é um no-op quando chamado pela segunda vez (sem chamarPy_FinalizeEx()primeiro). Não há valor de retorno; é um erro fatal se a inicialização falhar.Usa
Py_InitializeFromConfig()para personalizar a Configuração de inicialização do Python.Nota
No Windows, altera o modo do console de
O_TEXTparaO_BINARY, o que também afetará usos não Python do console usando o Runtime C.
-
void Py_InitializeEx(int initsigs)¶
- Parte da ABI Estável.
Esta função funciona como
Py_Initialize()se initsigs for1. Se initsigs for0, ela pula o registro de inicialização de manipuladores de sinal, o que pode ser útil quando o CPython é incorporado como parte de uma aplicação maior.Usa
Py_InitializeFromConfig()para personalizar a Configuração de inicialização do Python.
-
PyStatus Py_InitializeFromConfig(const PyConfig *config)¶
Inicializa o Python a partir da configuração config, conforme descrito em Initialization with PyConfig.
Consulte a seção Configuração de inicialização do Python para obter detalhes sobre como pré-inicializar o interpretador, preencher a estrutura de configuração do tempo de execução e consultar a estrutura de status retornada.
-
int Py_IsInitialized()¶
- Parte da ABI Estável.
Retorna verdadeiro (diferente de zero) quando o interpretador Python foi inicializado, falso (zero) se não. Após
Py_FinalizeEx()ser chamado, isso retorna falso até quePy_Initialize()seja chamado novamente.
-
int Py_IsFinalizing()¶
- Parte da ABI Estável desde a versão 3.13.
Retorna verdadeiro (diferente de zero) se o interpretador Python principal estiver em desligamento. Retorna falso (zero) caso contrário.
Adicionado na versão 3.13.
-
int Py_FinalizeEx()¶
- Parte da ABI Estável desde a versão 3.6.
Desfaz todas as inicializações feitas por
Py_Initialize()e o uso subsequente de funções da API Python/C, e destrói todos os subinterpretadores (vejaPy_NewInterpreter()abaixo) que foram criados e ainda não destruídos desde a última chamada aPy_Initialize(). Esta operação é ineficaz quando chamada pela segunda vez (sem chamarPy_Initialize()novamente primeiro).Como isso é o inverso de
Py_Initialize(), ele deve ser chamado na mesma thread com o mesmo interpretador ativo. Isso significa a thread principal e o interpretador principal. Isso nunca deve ser chamado enquantoPy_RunMain()estiver em execução.Normalmente, o valor de retorno é
0. Se houver erros durante a finalização (limpeza de dados armazenados em buffer),-1será retornado.Note that Python will do a best effort at freeing all memory allocated by the Python interpreter. Therefore, any C-Extension should make sure to correctly clean up all of the previously allocated PyObjects before using them in subsequent calls to
Py_Initialize(). Otherwise it could introduce vulnerabilities and incorrect behavior.Esta função é fornecida por vários motivos. Uma aplicação de incorporação pode querer reiniciar o Python sem precisar reiniciar a própria aplicação. Uma aplicação que carregou o interpretador Python de uma biblioteca carregável dinamicamente (ou DLL) pode querer liberar toda a memória alocada pelo Python antes de descarregar a DLL. Durante uma busca por vazamentos de memória em uma aplicação, um desenvolvedor pode querer liberar toda a memória alocada pelo Python antes de sair da aplicação.
Bugs e advertências: A destruição de módulos e objetos em módulos é feita em ordem aleatória; isso pode fazer com que destrutores (métodos
__del__()) falhem quando dependem de outros objetos (até mesmo funções) ou módulos. Módulos de extensão carregados dinamicamente pelo Python não são descarregados. Pequenas quantidades de memória alocadas pelo interpretador Python podem não ser liberadas (se você encontrar um vazamento, por favor, reporte-o). Memória presa em referências circulares entre objetos não é liberada. Strings internadas serão todas desalocadas independentemente de sua contagem de referências. Parte da memória alocada por módulos de extensão pode não ser liberada. Algumas extensões podem não funcionar corretamente se sua rotina de inicialização for chamada mais de uma vez; isso pode acontecer se uma aplicação chamarPy_Initialize()ePy_FinalizeEx()mais de uma vez.Py_FinalizeEx()não deve ser chamado recursivamente de dentro de si mesmo. Portanto, ele não deve ser chamado por nenhum código que possa ser executado como parte do processo de desligamento do interpretador, como manipuladoresatexit, finalizadores de objetos ou qualquer código que possa ser executado durante a limpeza dos arquivos de stdout e stderr.Levanta um evento de auditoria
cpython._PySys_ClearAuditHookssem argumentos.Adicionado na versão 3.6.
-
void Py_Finalize()¶
- Parte da ABI Estável.
Esta é uma versão retrocompatível de
Py_FinalizeEx()que desconsidera o valor de retorno.
-
int Py_BytesMain(int argc, char **argv)¶
- Parte da ABI Estável desde a versão 3.8.
Semelhante a
Py_Main(), mas argv é um vetor de strings de bytes, permitindo que a aplicação chamadora delegue a etapa de decodificação de texto ao ambiente de execução do CPython.Adicionado na versão 3.8.
-
int Py_Main(int argc, wchar_t **argv)¶
- Parte da ABI Estável.
O programa principal para o interpretador padrão, encapsulando um ciclo completo de inicialização/finalização, bem como comportamento adicional para implementar a leitura de configurações do ambiente e da linha de comando e, em seguida, executar
__main__de acordo com a Linha de comando.Isso é disponibilizado para programas que desejam oferecer suporte à interface de linha de comando completa do CPython, em vez de apenas incorporar um ambiente de execução do Python em uma aplicação maior.
Os parâmetros argc e argv são semelhantes aos passados para a função
main()de um programa C, exceto que as entradas argv são primeiro convertidas parawchar_tusandoPy_DecodeLocale(). Também é importante observar que as entradas da lista de argumentos podem ser modificadas para apontar para strings diferentes daquelas passadas (no entanto, o conteúdo das strings apontadas pela lista de argumentos não é modificado).O valor de retorno é
2se a lista de argumentos não representar uma linha de comando Python válida e, caso contrário, o mesmo quePy_RunMain().Em termos das APIs de configuração de tempo de execução do CPython documentadas na seção de configuração do ambiente de execução (e sem levar em conta o tratamento de erros),
Py_Mainé aproximadamente equivalente a:PyConfig config; PyConfig_InitPythonConfig(&config); PyConfig_SetArgv(&config, argc, argv); Py_InitializeFromConfig(&config); PyConfig_Clear(&config); Py_RunMain();
Em uso normal, uma aplicação de incorporação chamará esta função em vez de chamar
Py_Initialize(),Py_InitializeEx()ouPy_InitializeFromConfig()diretamente, e todas as configurações serão aplicadas conforme descrito em outra parte desta documentação. Se esta função for chamada após uma chamada anterior à API de inicialização do ambiente de execução, as configurações de ambiente e de linha de comando que serão atualizadas dependem da versão (pois dependem de quais configurações oferecem suporte corretamente à modificação após já terem sido definidas uma vez na primeira inicialização do ambiente de execução).
-
int Py_RunMain(void)¶
Executa o módulo principal em um ambiente de execução CPython totalmente configurado.
Executa o comando (
PyConfig.run_command), o script (PyConfig.run_filename) ou o módulo (PyConfig.run_module) especificado na linha de comando ou na configuração. Se nenhum desses valores estiver definido, executa o prompt interativo do Python (REPL) usando o espaço de nomes global do módulo__main__.Se
PyConfig.inspectnão estiver definido (o padrão), o valor de retorno será0se o interpretador terminar normalmente (ou seja, sem levantar uma exceção), o status de saída de uma exceçãoSystemExitnão tratada ou1para qualquer outra exceção não tratada.Se
PyConfig.inspectestiver definido (como quando a opção-ié usada), em vez de retornar quando o interpretador for encerrado, a execução será retomada em um prompt interativo do Python (REPL) usando o espaço de nomes global do módulo__main__. Se o interpretador for encerrado com uma exceção, ela será imediatamente levantada na sessão do REPL. O valor de retorno da função é então determinado pela forma como a sessão do REPL termina:0,1ou o status de uma exceçãoSystemExit, conforme especificado acima.Essa função sempre finaliza o interpretador Python antes de retornar.
Consulte a Configuração do Python para obter um exemplo de um Python personalizado que sempre é executado em modo isolado usando
Py_RunMain().
-
int PyUnstable_AtExit(PyInterpreterState *interp, void (*func)(void*), void *data)¶
- Esta é uma API Instável. Isso pode se alterado sem aviso em lançamentos menores.
Registra uma função de retorno de chamada
atexitpara o interpretador de destino interp. Isso é semelhante aPy_AtExit(), mas recebe um interpretador explícito e um ponteiro de dados para a função de retorno de chamada.Deve haver um estado de thread anexado para interp.
Adicionado na versão 3.13.
Cautions regarding runtime finalization¶
In the late stage of interpreter shutdown, after attempting to wait for
non-daemon threads to exit (though this can be interrupted by
KeyboardInterrupt) and running the atexit functions, the runtime
is marked as finalizing: Py_IsFinalizing() and
sys.is_finalizing() return true. At this point, only the finalization
thread that initiated finalization (typically the main thread) is allowed to
acquire the GIL.
If any thread, other than the finalization thread, attempts to attach a thread state during finalization, either explicitly or implicitly, the thread enters a permanently blocked state where it remains until the program exits. In most cases this is harmless, but this can result in deadlock if a later stage of finalization attempts to acquire a lock owned by the blocked thread, or otherwise waits on the blocked thread.
Gross? Yes. This prevents random crashes and/or unexpectedly skipped C++ finalizations further up the call stack when such threads were forcibly exited here in CPython 3.13 and earlier. The CPython runtime thread state C APIs have never had any error reporting or handling expectations at thread state attachment time that would’ve allowed for graceful exit from this situation. Changing that would require new stable C APIs and rewriting the majority of C code in the CPython ecosystem to use those with error handling.
Parâmetros de todo o processo¶
-
void Py_SetProgramName(const wchar_t *name)¶
- Parte da ABI Estável.
Esta API é mantida para compatibilidade com versões anteriores: em vez disso, deve-se usar a configuração
PyConfig.program_name, consulte Configuração de inicialização do Python.This function should be called before
Py_Initialize()is called for the first time, if it is called at all. It tells the interpreter the value of theargv[0]argument to themain()function of the program (converted to wide characters). This is used by some other functions below to find the Python run-time libraries relative to the interpreter executable. The default value is'python'. The argument should point to a zero-terminated wide character string in static storage whose contents will not change for the duration of the program’s execution. No code in the Python interpreter will change the contents of this storage.Use
Py_DecodeLocale()para decodificar uma string de bytes e obter uma string wchar_t*.Descontinuado desde a versão 3.11, removido na versão 3.15.
-
const char *Py_GetVersion()¶
- Parte da ABI Estável.
Retorna a verão deste interpretador Python. Esta é uma string que se parece com
"3.0a5+ (py3k:63103M, May 12 2008, 00:53:55) \n[GCC 4.2.3]"
A primeira palavra (até o primeiro espaço em branco) representa a versão atual do Python; os primeiros caracteres indicam a versão principal e a versão secundária, separados por um ponto. A string retornada aponta para um armazenamento estático; o chamador não deve modificar seu valor. O valor fica disponível para o código Python como
sys.version.Veja também a constante
Py_Version.
-
const char *Py_GetPlatform()¶
- Parte da ABI Estável.
Retorna o identificador da plataforma atual. No Unix, este identificador é formado pelo nome “oficial” do sistema operacional, convertido para minúsculas, seguido pelo número da revisão principal; por exemplo, para Solaris 2.x, também conhecido como SunOS 5.x, o valor é
'sunos5'. No macOS, é'darwin'. No Windows, é'win'. A string retornada aponta para um armazenamento estático; o chamador não deve modificar seu valor. O valor está disponível para o código Python comosys.platform.
-
const char *Py_GetCopyright()¶
- Parte da ABI Estável.
Retorna a string oficial de direitos autoriais para a versão atual do Python, por exemplo
'Copyright 1991-1995 Stichting Mathematisch Centrum, Amsterdam'A string retornada aponta para o armazenamento estático; o chamador não deve modificar o seu valor. O valor está disponível para o código Python como
sys.copyright.
-
const char *Py_GetCompiler()¶
- Parte da ABI Estável.
Retorna uma indicação do compilador usado para construir a atual versão do Python, em colchetes, por exemplo:
"[GCC 2.7.2.2]"A string retornada aponta para o armazenamento estático; o chamador não deve modificar o seu valor. O valor está disponível para o código Python como
sys.version.
-
const char *Py_GetBuildInfo()¶
- Parte da ABI Estável.
Return information about the sequence number and build date and time of the current Python interpreter instance, for example
"#67, Aug 1 1997, 22:34:28"A string retornada aponta para o armazenamento estático; o chamador não deve modificar o seu valor. O valor está disponível para o código Python como
sys.version.
-
void PySys_SetArgvEx(int argc, wchar_t **argv, int updatepath)¶
- Parte da ABI Estável.
Esta API é mantida para compatibilidade com versões anteriores: em vez disso, deve-se usar a configuração
PyConfig.argv,PyConfig.parse_argvePyConfig.safe_path, consulte Configuração de inicialização do Python.Define
sys.argvcom base em argc e argv. Esses parâmetros são semelhantes aos passados para a funçãomain()do programa, com a diferença de que a primeira entrada deve se referir ao arquivo de script a ser executado, em vez do executável que hospeda o interpretador Python. Se não houver um script a ser executado, a primeira entrada em argv pode ser uma string vazia. Se esta função falhar ao inicializarsys.argv, uma condição fatal será sinalizada usandoPy_FatalError().Se updatepath é zero, isto é tudo o que a função faz. Se updatepath não é zero, a função também modifica
sys.pathde acordo com o seguinte algoritmo:Se o nome de um script existente for passado em
argv[0], o caminho absoluto do diretório onde o script está localizado será adicionado asys.path.Caso contrário (isto é, se argc for
0ouargv[0]não apontar para um nome de arquivo existente), uma string vazia é adicionada ao início desys.path, o que é o mesmo que adicionar o diretório de trabalho atual (".").
Use
Py_DecodeLocale()para decodificar uma string de bytes e obter uma string wchar_t*.Veja também os membros
PyConfig.orig_argvePyConfig.argvda Configuração de inicialização do Python.Nota
Recomenda-se que aplicações que incorporam o interpretador Python para fins que não sejam a execução de um único script passem
0como updatepath, e atualizemsys.pathpor conta própria, se desejarem. Veja CVE 2008-5983.Em versões anteriores à 3.1.3, você pode obter o mesmo efeito removendo manualmente o primeiro elemento de
sys.pathapós ter chamadoPySys_SetArgv(), por exemplo, usando:PyRun_SimpleString("import sys; sys.path.pop(0)\n");
Adicionado na versão 3.1.3.
Descontinuado desde a versão 3.11, removido na versão 3.15.
-
void PySys_SetArgv(int argc, wchar_t **argv)¶
- Parte da ABI Estável.
Esta API é mantida para retrocompatibilidade: em vez disso, devem ser usadas as configurações
PyConfig.argvePyConfig.parse_argv, consulte a Configuração de inicialização do Python.Esta função funciona como
PySys_SetArgvEx()com updatepath definido como1a menos que o interpretador python tenha sido iniciado com a-I.Use
Py_DecodeLocale()para decodificar uma string de bytes e obter uma string wchar_t*.Veja também os membros
PyConfig.orig_argvePyConfig.argvda Configuração de inicialização do Python.Alterado na versão 3.4: O valor updatepath depende de
-I.Descontinuado desde a versão 3.11, removido na versão 3.15.
-
void Py_SetPythonHome(const wchar_t *home)¶
- Parte da ABI Estável.
Esta API é mantida para retrocompatibilidade: em vez disso, deve-se usar a configuração
PyConfig.home, consulte a Configuração de inicialização do Python.Define o diretório pessoal (“home”) padrão, ou seja, o local das bibliotecas padrão do Python. Consulte
PYTHONHOMEpara obter o significado da string do argumento.O argumento deve apontar para uma string terminada em zero em um armazenamento estático, cujo conteúdo não será alterado durante a execução do programa. Nenhum código no interpretador Python alterará o conteúdo desse armazenamento.
Use
Py_DecodeLocale()para decodificar uma string de bytes e obter uma string wchar_t*.Descontinuado desde a versão 3.11, removido na versão 3.15.