3. Utilizando Python no Windows¶
Este documento pretende dar uma visão geral do comportamento específico do Windows que você deve conhecer quando fores utilizar o Python no sistema operacional Microsoft Windows.
3.1. Instalando o Python¶
Diferente da maioria dos sistemas e serviços Unix, o Windows não inclui uma instalação suportada do Python. Para deixar o Python disponível, o time CPython compilou os instaladores do Windows (pacotes MSI) com cada versão por vários anos. Esses instaladores têm a intenção primária de adicionar uma instalação de Python por usuário, com o interpretador e as bibliotecas núcleo sendo utilizadas por um único usuário. O instalador também é capaz de instalar para todos os usuários de uma única máquina, e um arquivo ZIP separado está disponível para distribuições locais de aplicação.
3.1.1. Versões Suportadas¶
As specified in PEP 11, a Python release only supports a Windows platform while Microsoft considers the platform under extended support. This means that Python 3.5 supports Windows Vista and newer. If you require Windows XP support then please install Python 3.4.
3.1.2. Etapas de Instalação¶
Four Python 3.5 installers are available for download - two each for the 32-bit and 64-bit versions of the interpreter. The web installer is a small initial download, and it will automatically download the required components as necessary. The offline installer includes the components necessary for a default installation and only requires an internet connection for optional features. See Instalando Sem Download for other ways to avoid downloading during installation.
Após iniciar o instalador, uma de duas opções deve ser selecionada:

Se você selecionar “Install Now”:
- Você não precisará ser um administrador (a menos que uma atualização de sistema para a Biblioteca em Tempo de Execução C seja necessária ou que você instale o Inicializador Python para Windows para todos os usuários)
- Python será instalado dentro do seu diretório de usuário
- O Inicializador Python para Windows será instalado de acordo com a opção ao final da primeira página
- A biblioteca padrão, a suíte de testes, o inicializador e o pip serão instalados
- Se selecionado, o diretório de instalação será adicionado no seu
PATH
- Atalhos serão visíveis apenas para o usuário atual
Selecionando “Customize installation” irá permitir que você selecione os recursos a serem instalados, o local da instalação e outras opções ou ações pós-instalação. Para instalar símbolos de depuração ou binários, você precisará usar essa opção.
Para realizar uma instalação para todos os usuários, você deve selecionar “Customize installation”. Neste caso:
- Você pode ser solicitado a providenciar credenciais administrativas ou aprovação
- Python será instalado dentro do diretório Program Files
- O Inicializador Python para Windows será instalado dentro do diretório Windows
- Recursos opcionais podem ser selecionados durante a instalação
- A biblioteca padrão pode ser pré-compilada em bytecode
- Se selecionado, o diretório de instalação será adicionado ao
PATH
do sistema - Atalhos estão disponíveis para todos os usuários
3.1.3. Instalando sem UI¶
Todas as opções disponíveis na IU do instalador também podem ser especificadas a partir da linha de comando, permitindo que instaladores por script repliquem uma instalação em várias máquinas sem interação do usuário. Essas opções também podem ser definidas sem suprimir a IU para alterar alguns dos padrões.
Para esconder completamente a IU do instalador e instalar o Python silenciosamente, passe a opção /quiet
. Para pular a interação de usuário mas ainda exibir o progresso e os erros, passe a opção /passive
. A opção /uninstall
pode ser passada para imediatamente começar a remover o Python - nenhuma confirmação será exibida.
Todas as outras opções são passadas como nome=valor
, onde o valor é usualmente 0
para desabilitar o recurso, 1
para ativar o recurso, ou um caminho. A lista completa de opções disponíveis é mostrada abaixo.
Name (nome) | Description (descrição) | Default (padrão) |
---|---|---|
InstallAllUsers (Instalar para Todos usuários) | Execute uma instalação em todo o sistema. | 0 |
TargetDir (Diretório Alvo) | O diretório de instalação | Selecionado com base em “Instalar para Todos os Usuários” |
DefaultAllUsersTargetDir (Diretório de Destino Padrão para Todos os usuários) | O diretório de instalação padrão para instalações de todos os usuários | %ProgramFiles%\Python X.Y or %ProgramFiles(x86)%\Python X.Y |
DefaultJustForMeTargetDir (Diretório Alvo Padrão Apenas Para Mim) | O diretório de instalação padrão para instalações just-for-me | %LocalAppData%\Programs\PythonXY ou %LocalAppData%\Programs\PythonXY-32 |
DefaultCustomTargetDir (Diretório de destino personalizado padrão) | Diretório de instalação personalizado padrão exibido na interface do usuário | (vazio) |
AssociateFiles (Arquivos Associados) | Criar associações de arquivos se o launcher também estiver instalado. | 1 |
CompileAll (Compilar Tudo) | Compile todos os arquivos .py para .pyc . |
0 |
PrependPath (path a ser percorrido) | Add install and Scripts directories
tho PATH and .PY to
PATHEXT |
0 |
Shortcuts (atalhos) | Crie atalhos para o intérprete, documentação e IDLE se instalado. | 1 |
Include_doc | Install Python manual (Instalação Manual do Python) | 1 |
Include_debug (Incluir o Modo de Depuração) | Instalar binários de Depuração | 0 |
Include_dev | Instalar cabeçalhos e bibliotecas de desenvolvedores | 1 |
Include_exe | Instalar python.exe e arquivos relacionados |
1 |
Include_launcher | Instalar Inicializador Python para Windows. | 1 |
InstallLauncherAllUsers | Instalar para Inicializador Python para Windows todos os usuários. | 1 |
Include_lib | Instalar biblioteca padrão e módulos de extensão | 1 |
Include_pip | Instale o pacote pip e setuptools | 1 |
Include_symbols | Instalar símbolos de depuração (*.pdb) | 0 |
Include_tcltk | Instale o suporte Tcl/Tk e o IDLE | 1 |
Include_test | Instalar o conjunto de testes da biblioteca padrão | 1 |
Include_tools | Instalar scripts com utilitários | 1 |
LauncherOnly | Instala apenas o launcher. Isso substituirá a maioria das outras opções. | 0 |
SimpleInstall | Desativar a maioria das UIs de instalação | 0 |
SimpleInstallDescription | Uma mensagem personalizada para exibir quando a IU de instalação simplificada é usada. | (vazio) |
Por exemplo, para instalar silenciosamente uma instalação de Python padrão e em todo o sistema, você pode usar o seguinte comando (a partir de um terminal de comando autorizado):
python-3.5.0.exe /quiet InstallAllUsers=1 PrependPath=1 Include_test=0
Para permitir que usuários instalem facilmente uma cópia do Python sem a suíte de testes, você pode fornecer um atalho com o seguinte comando. Isso irá exibir uma página inicial simplificado e bloquear a personalização:
python-3.5.0.exe InstallAllUsers=0 Include_launcher=0 Include_test=0
SimpleInstall=1 SimpleInstallDescription="Just for me, no test suite."
(Observe que omitir o inicializador também omite associações de arquivos, e só é recomendado para instalações por usuários quando também existe uma instalação por todo o sistema que inclui o inicializador.)
The options listed above can also be provided in a file named unattend.xml
alongside the executable. This file specifies a list of options and values.
When a value is provided as an attribute, it will be converted to a number if
possible. Values provided as element text are always left as strings. This
example file sets the same options and the previous example:
<Options>
<Option Name="InstallAllUsers" Value="no" />
<Option Name="Include_launcher" Value="0" />
<Option Name="Include_test" Value="no" />
<Option Name="SimpleInstall" Value="yes" />
<Option Name="SimpleInstallDescription">Just for me, no test suite</Option>
</Options>
3.1.4. Instalando Sem Download¶
Como alguns recursos do Python não estão inclusos no download inicial do instalador, selecionar esses recursos pode exigir uma conexão com a internet. Para evitar isso, todos os possíveis componentes podem ser baixados sob demanda para criar um layout completo que não irá precisar de uma conexão de internet independentemente dos recursos selecionados. Note que este download pode ser maior que o necessário, mas onde um grande número de instalações serão realizadas é bem útil ter uma cópia em cache local.
Execute the following command from Command Prompt to download all possible
required files. Remember to substitute python-3.5.0.exe
for the actual
name of your installer, and to create layouts in their own directories to
avoid collisions between files with the same name.
python-3.5.0.exe /layout [optional target directory]
Você também pode especificar a opção /quiet
para esconder o acompanhamento de progresso.
3.1.5. Modificando uma instalação¶
Uma vez que o Python foi instalado, você pode adicionar ou remover recursos através da ferramenta Programas e Recursos que é parte do Windows. Selecione o registro do Python e escolha “Uninstall/Change” para abrir o instalador no modo de manutenção.
“Modify” permite que você adicione ou remova recursos modificando as caixas de entrada - caixas de entrada não modificadas não irão instalar ou remover nada. Algumas opções não podem ser modificadas dessa forma, como o diretório de instalação; para modificá-las, você precisará remover e então reinstalar o Python completamente.
“Repair” irá verificar todos os arquivos que devem ser instalados usando as configurações atuais e substituir qualquer um que tiver sido removido ou modificado.
“Uninstall” irá remover o Python completamente, com a exceção do Inicializador Python para Windows, que tem seu próprio registro nos Programas e Recursos.
3.1.6. Outras plataformas¶
Com o desenvolvimento do Python em andamento, algumas plataformas que costumavam ser suportadas anteriormente não são mais suportadas (devido à falta de usuário ou desenvolvedores). Confira a PEP 11 para detalhes de todas as plataformas não suportadas.
- Windows CE ainda é suportado.
- O instalador Cygwin também oferece instalação do interpretador do Python (cf. Cygwin package source, Maintainer releases)
Veja Python for Windows para informação detalhada sobre as plataformas com instaladores pré-compilados.
Ver também
- Python on XP
- “7 Minutes to “Hello World!”” by Richard Dooling, 2006
- Installing on Windows
- in “Dive into Python: Python from novice to pro” by Mark Pilgrim, 2004, ISBN 1-59059-356-1
- For Windows users
- in “Installing Python” in “A Byte of Python” by Swaroop C H, 2003
3.2. Pacotes Alternativos¶
À parte da distribuição padrão CPython, existem pacotes modificados incluindo funcionalidades adicionais. A seguir está uma lista de versões populares e seus recursos chave:
- ActivePython
- Instalador com compatibilidade multi-plataforma, documentação, PyWin32
- Anaconda
- Módulos científicos populares (como o numpy, scipy e pandas) e o gerenciador de pacotes
conda
. - Canopy
- Um “ambiente de análise Python compreensivo” com editores e outras ferramentas de desenvolvimento.
- WinPython
- Distribuição específica do Windows com pacotes científicos pré-construídos e ferramentas para construir pacotes.
Note que esses pacotes podem não incluir as últimas versões do Python ou outras bibliotecas, e não são mantidos ou suportados pelo time do núcleo do Python.
3.3. Configurando o Python¶
Para executar o Python convenientemente de um prompt de comando, você pode considerar mudar algumas variáveis de ambiente padrão do Windows. Ainda que o instalador forneça uma opção para configurar as variáveis PATH e PATHEXT para você, isso só é confiável para uma instalação única e global no sistema. Se você usa regularmente múltiplas versões do Python, considere usar o Inicializador Python para Windows.
3.3.1. Excursus: Configurando variáveis de ambiente¶
O Windows permite que variáveis de ambiente sejam configuradas de forma permanente em ambos os níveis de Usuário e de Sistema, ou temporariamente em um prompt de comando.
To temporarily set environment variables, open Command Prompt and use the set command:
C:\>set PATH=C:\Program Files\Python 3.5;%PATH%
C:\>set PYTHONPATH=%PYTHONPATH%;C:\My_python_lib
C:\>python
Essas mudanças serão aplicadas em quaisquer comandos posteriores que forem executados neste console, e serão herdadas por quaisquer aplicações iniciadas pelo console.
Incluir o nome da variável com sinais de porcentagem irá expandir o valor existente, permitindo que você adicione seu novo valor ao início ou final. Modificar o PATH
adicionando o diretório contendo python.exe ao início é o modo mais comum de garantir que a versão correta do Python seja iniciada.
Para modificar permanentemente as variáveis de ambiente padrão, clique em Iniciar e procure por ‘Editar as variáveis de ambiente do sistema`, ou abra as propriedades do Sistema, Configurações avançadas do sistema e clique no botão Variáveis de Ambiente. Neste diálogo, você pode adicionar ou modificar as variáveis de Usuário ou Sistema. Para mudar as variáveis do Sistema, você precisa de acesso não-restrito à sua máquina (isto é, direitos de Administrador).
Nota
O Windows irá concatenar as variáveis de Usuário após as variáveis de Sistema, o que pode causar resultados inesperados quando modificando o PATH
.
A variável PYTHONPATH
é usada por todas as versões do Python 2 e Python 3, então você não deve configurar permanentemente esta variável a menos que ela apenas inclua código que seja compatível com todas as suas versões instaladas do Python.
Ver também
- https://support.microsoft.com/kb/100843
- Variáveis de ambiente no Windows NT
- https://technet.microsoft.com/en-us/library/cc754250.aspx
- O comando SET, para modificar temporariamente as variáveis de ambiente
- https://technet.microsoft.com/en-us/library/cc755104.aspx
- O comando SETX, para modificar permanentemente as variáveis de ambiente
- https://support.microsoft.com/kb/310519
- Como Gerenciar Variáveis de Ambiente no Windows XP
- https://www.chem.gla.ac.uk/~louis/software/faq/q1.html
- Configurando variáveis de ambiente, Lous J. Farrugia
3.3.2. Encontrando o executável do Python¶
Alterado na versão 3.5.
Besides using the automatically created start menu entry for the Python interpreter, you might want to start Python in the command prompt. The installer for Python 3.5 and later has an option to set that up for you.
On the first page of the installer, an option labelled “Add Python 3.5 to
PATH” can be selected to have the installer add the install location into the
PATH
. The location of the Scripts\
folder is also added.
This allows you to type python to run the interpreter, and
pip for the package installer. Thus, you can also execute your
scripts with command line options, see Linha de comando documentation.
Se você não habilitar essa opção no momento de instalação, você sempre pode re-executar o instalador, selecionar Modify, e habilitá-la. Alternativamente, você pode modificar manualmente a variável PATH
usando os direcionamentos em Excursus: Configurando variáveis de ambiente. Você precisa definir sua variável de ambiente PATH
para incluir o diretório da sua instalação Python, delimitado por um ponto e vírgula de outras entradas. Uma variável exemplo pode parecer com isso (assumindo que as duas primeiras entradas já existem):
C:\WINDOWS\system32;C:\WINDOWS;C:\Program Files\Python 3.5
3.4. Inicializador Python para Windows¶
Novo na versão 3.3.
O inicializador Python para Windows é um utilitário que auxilia na localização e execução de diferentes versões do Python. Ele permite que scripts (ou a linha de comando) indiquem uma preferência por uma versão do Python específica, e irá localizar e executar essa versão.
Ao contrário da variável PATH
, o inicializador irá corretamente selecionar a versão mais apropriada do Python. Ele irá preferir instalações por usuário ao invés de instalações globais no sistema, e ordenará por versão da linguagem ao invés de usar a versão instalada mais recentemente.
3.4.1. Começando¶
3.4.1.1. Pela linha de comando¶
Instalações globais no sistema do Python 3.3 ou posterior irão colocar o inicializador no seu PATH
. O inicializador é compatível com todas as versões disponíveis do Python, então não importa qual versão está instalada. Para verificar se o inicializador está disponível, execute o seguinte comando no Prompt de Comando:
py
You should find that the latest version of Python 2.x you have installed is started - it can be exited as normal, and any additional command-line arguments specified will be sent directly to Python.
If you have multiple versions of Python 2.x installed (e.g., 2.6 and 2.7) you will have noticed that Python 2.7 was started - to launch Python 2.6, try the command:
py -2.6
If you have a Python 3.x installed, try the command:
py -3
You should find the latest version of Python 3.x starts.
Se você ver o seguinte erro, você não tem o inicializador instalado:
'py' is not recognized as an internal or external command,
operable program or batch file.
Instalações do Python por usuário não permitem adicionar o inicializador ao PATH
a não ser que a opção seja selecionada na instalação.
3.4.1.2. Ambientes virtuais¶
Novo na versão 3.5.
Se o inicializador é executado sem versão explícita do Python especificada, e um ambiente virtual (criado com o módulo da biblioteca padrão venv
ou da ferramenta externa virtualenv
) está ativo, o inicializador irá executar o interpretador do ambiente virtual ao invés do global. Para executar o interpretador global, ou desative o ambiente virtual, ou explicitamente especifique a versão global do Python.
3.4.1.3. Por um script¶
Vamos criar um script teste de Python - crie um arquivo chamado hello.py
com os seguintes conteúdos:
#! python
import sys
sys.stdout.write("hello from Python %s\n" % (sys.version,))
A partir do diretório onde hello.py está, execute o comando:
py hello.py
Você deve notar que o número da versão da sua instalação mais recente do Python 2.x é exibido. Agora tente mudar a primeira linha para ser:
#! python3
Re-executar o comando agora deve exibir informações da última versão do Python 3.x. Como nos exemplos da linha de comando acima, você pode especificar um qualificador de versão mais explícito. Assumindo que você tem o Python 2.6 instalado, tente mudar a primeira linha para #! python2.6
e você deve ver as informações da versão 2.6 sendo exibidas.
3.4.1.4. Por associação de arquivos¶
O inicializador deve ter sido associado com arquivos Python (isto é, arquivos .py
, .pyw
, .pyc
) quando foi instalado. Isso significa que quando você clica duas vezes em um desses arquivos a partir do Explorador de Arquivos do Windows o inicializador será usado, e assim você pode usar as mesmas facilidades descritas acima para que o script especifique qual versão deve ser usada.
O benefício chave disso é que um único inicializador pode suportar múltiplas versões do Python ao mesmo tempo dependendo dos conteúdos da primeira linha.
3.4.2. Linhas Shebang¶
Se a primeira linha de um arquivo de script começa com #!
, ela é conhecida como linha “shebang”. Linux e outros tipos de sistemas operacionais Unix têm suporte nativo para essas linhas e elas são comumente usadas nesses sistemas para indicar como um script deve ser executado. Esse inicializador permite que as mesmas facilidades sejam usadas com scripts Python no Windows e os exemplos acima demonstram seu uso.
Para permitir que linhas shebang em scripts Python sejam portáveis entre Unix e Windows, este inicializador suporta um número de comandos ‘virtuais’ para especificar qual interpretador deve ser usado. Os comandos virtuais suportados são:
/usr/bin/env python
/usr/bin/python
/usr/local/bin/python
python
Por exemplo, se a primeira linha do seu script começa com
#! /usr/bin/python
O Python padrão será localizado e utilizado. Como muitos scripts Python escritos para funcionar no Unix já terão essa linha, você deve perceber que esses scripts podem ser usados pelo inicializador sem modificação. Se você está escrevendo um novo script no Windows que você espera que seja útil no Unix, você deve usar uma dessas linhas shebang começando com /usr
.
Any of the above virtual commands can be suffixed with an explicit version
(either just the major version, or the major and minor version) - for example
/usr/bin/python2.7
- which will cause that specific version to be located
and used.
A forma de linha shebang /usr/bin/env
tem uma propriedade especial adicional. Antes de procurar pela versão dos interpretadores de Python instalados, essa forma irá pesquisar no PATH
por um executável Python. Isso corresponde ao comportamento do programa env
do Unix, que realiza a pesquisa no PATH
.
3.4.3. Argumentos em linhas shebang¶
As linhas shebang também podem especificar opções adicionais a serem passadas ao interpretador Python. Por exemplo, se você tem uma linha shebang:
#! /usr/bin/python -v
O Python será iniciado com a opção -v
3.4.4. Personalização¶
3.4.4.1. Personalização via arquivos INI¶
Two .ini files will be searched by the launcher - py.ini
in the current
user’s “application data” directory (i.e. the directory returned by calling the
Windows function SHGetFolderPath with CSIDL_LOCAL_APPDATA) and py.ini
in the
same directory as the launcher. The same .ini files are used for both the
‘console’ version of the launcher (i.e. py.exe) and for the ‘windows’ version
(i.e. pyw.exe)
Customization specified in the “application directory” will have precedence over the one next to the executable, so a user, who may not have write access to the .ini file next to the launcher, can override commands in that global .ini file)
3.4.4.2. Personalizando versões padrão do Python¶
In some cases, a version qualifier can be included in a command to dictate which version of Python will be used by the command. A version qualifier starts with a major version number and can optionally be followed by a period (‘.’) and a minor version specifier. If the minor qualifier is specified, it may optionally be followed by “-32” to indicate the 32-bit implementation of that version be used.
Por exemplo, uma linha shebang #!python
não tem qualificador de versão, enquanto #!python3
tem um qualificador de versão que especifica apenas uma versão maior.
If no version qualifiers are found in a command, the environment variable
PY_PYTHON
can be set to specify the default version qualifier - the default
value is “2”. Note this value could specify just a major version (e.g. “2”) or
a major.minor qualifier (e.g. “2.6”), or even major.minor-32.
Se nenhum qualificador de versão menor é encontrado, a variável de ambiente PY_PYTHON{major}
(onde {major}
é o qualificador da versão maior atual, como determinado acima) pode ser definida para especificar a versão completa. Se nenhuma opção é encontrada, o inicializador irá enumerar as versões do Python instaladas e usar a última versão menor encontrada como versão maior, o que é provavelmente, ainda que não garantido, a versão instalada mais recentemente naquela família.
On 64-bit Windows with both 32-bit and 64-bit implementations of the same (major.minor) Python version installed, the 64-bit version will always be preferred. This will be true for both 32-bit and 64-bit implementations of the launcher - a 32-bit launcher will prefer to execute a 64-bit Python installation of the specified version if available. This is so the behavior of the launcher can be predicted knowing only what versions are installed on the PC and without regard to the order in which they were installed (i.e., without knowing whether a 32 or 64-bit version of Python and corresponding launcher was installed last). As noted above, an optional “-32” suffix can be used on a version specifier to change this behaviour.
Exemplos:
- Se nenhuma opção relevante for definida, os comandos
python
epython2
irão usar a última versão instalada do Python 2.x e o comandopython3
irá usar o último Python 3.x instalado. - Os comandos
python3.1
epython2.7
não irão consultar nenhuma opção já que as versões estão completamente especificadas. - Se
PY_PYTHON=3
, os comandospython
epython3
irão ambos usar a última versão do Python 3 instalada. - Se
PY_PYTHON=3.1-32
, o comandopython
irá usar a implementação 32-bit do 3.1 enquanto o comandopython3
irá usar o último Python instalado (PY_PYTHON não foi considerado porque uma versão maior foi especificada). - Se
PY_PYTHON=3
ePY_PYTHON3=3.1
, os comandospython
epython3
irão ambos usar especificamente 3.1.
Em adição às variáveis de ambiente, as mesmas configurações podem ser feitas no arquivo .INI usado pelo inicializador. A seção nos arquivos INI é chamada [defaults]
e o nome da chave será o mesmo que as variáveis de ambiente sem o prefixo PY_
(e observe que os nomes das chaves no arquivo INI não diferem maiúsculas e minúsculas). Os conteúdos de uma variável de ambiente irão sobrescrever coisas especificadas em um arquivo INI.
Por exemplo:
- Configurar
PY_PYTHON=3.1
é o equivalente ao arquivo INI contendo:
[defaults]
python=3.1
- Configurar
PY_PYTHON=3
ePY_PYTHON3=3.1
é o equivalente ao arquivo INI contendo:
[defaults]
python=3
python3=3.1
3.4.5. Diagnósticos¶
Se uma variável de ambiente PYLAUNCH_DEBUG
é configurada (para qualquer valor), o inicializador irá exibir a informação de diagnóstico do stderr (isto é, no console). Enquanto essa informação consegue ser simultaneamente verbosa e concisa, ela deve permitir que você veja quais versões do Python foram localizadas, porquê uma versão particular foi escolhida e qual linha de comando exatamente foi usada para executar o Python alvo.
3.5. Encontrando módulos¶
O Python geralmente armazena sua biblioteca (e assim sua pasta de site-packages) no diretório de instalação. Então, se você instalou o Python em C:\Python\
, a biblioteca padrão irá residir em C:\Python\Lib\
e módulos de terceiros serão armazenados em C:\Python\Lib\site-packages\
.
This is how sys.path
is populated on Windows:
- Uma entrada em branco é adicionada ao início, que corresponde ao diretório atual.
- Se a variável de ambiente
PYTHONPATH
existe, como descrito em Environment variables, suas entradas são adicionadas em seguida. Note que no Windows, caminhos nessa variável devem ser separados por ponto e vírgula, para distinguir eles dos dois pontos usados nos identificadores de drivers (C:\
etc.). - “Caminhos da aplicação” adicionais podem ser adicionados ao registro como subchaves de
\SOFTWARE\Python\PythonCore{version}\PythonPath
sob ambasHKEY_CURRENT_USER
eHKEY_LOCAL_MACHINE
. Subchaves que possuem string de caminhos delimitados por ponto e vírgula como seu valor padrão farão com que cada caminho seja adicionado aosys.path
. (Note que todos os instaladores conhecidos usam apenas HKLM, portanto HKCU está tipicamente vazio.) - If the environment variable
PYTHONHOME
is set, it is assumed as “Python Home”. Otherwise, the path of the main Python executable is used to locate a “landmark file” (Lib\os.py
) to deduce the “Python Home”. If a Python home is found, the relevant sub-directories added tosys.path
(Lib
,plat-win
, etc) are based on that folder. Otherwise, the core Python path is constructed from the PythonPath stored in the registry. - Se o Python Home não puder ser localizado, nenhum
PYTHONPATH
está especificado no ambiente, e nenhuma entrada de registro pôde ser encontrada, um caminho padrão com entradas relativas é usado (por exemplo,.\Lib;.\plat-win
, etc).
Se um arquivo pyvenv.cfg
for encontrado juntamente com o principal executável ou no diretório um nível acima do executável, as seguintes variações se aplicam:
- Se
home
é um caminho absoluto ePYTHONHOME
não está definido, o caminho é usado ao invés do caminho ao principal executável quando deduzindo a localização do Home. - If
applocal
is set to true, thehome
property or the main executable is always used as the home path, and all environment variables or registry values affecting the path are ignored. The landmark file is not checked.
O resultado final de tudo isso é:
- Quando executando
python.exe
, ou qualquer outro .exe no diretório principal do Python (ou uma versão instalada, ou diretamente do diretório PCbuild), o caminho núcleo é deduzido, e os caminhos núcleo no registro são ignorados. Outros “caminhos da aplicação” no registro são sempre lidos. - Quando Python é hospedado em outro .exe (diretório diferente, embutido via COM, etc), o “Python Home” não será deduzido, então o caminho núcleo do registro é usado. Outros “caminhos da aplicação” no registro sempre são lidos.
- Se o Python não puder encontrar seu Home e não existem valores no registro (.exe imutáveis, algumas configurações de instalação bem estranhas) você recebe um caminho com alguns caminhos padrão, porém relativos.
Para aqueles que querem empacotar o Python em suas aplicações ou distribuições, o seguinte conselho irá prevenir conflitos com outras instalações:
- Include a
pyvenv.cfg
file alongside your executable containingapplocal = true
. This will ensure that your own directory will be used to resolve paths even if you have included the standard library in a ZIP file. It will also ignore user site-packages and other paths listed in the registry. - If you are loading
python3.dll
orpython35.dll
in your own executable, explicitly callPy_SetPath()
or (at least)Py_SetProgramName()
beforePy_Initialize()
. - Limpe e/ou sobrescreva
PYTHONPATH
e definaPYTHONHOME
antes de iniciar opython.exe
a partir da sua aplicação. - If you cannot use the previous suggestions (for example, you are a
distribution that allows people to run
python.exe
directly), ensure that the landmark file (Lib\os.py
) exists in your install directory. (Note that it will not be detected inside a ZIP file.)
These will ensure that the files in a system-wide installation will not take precedence over the copy of the standard library bundled with your application. Otherwise, your users may experience problems using your application. Note that the first suggestion is the best, as the other may still be susceptible to non-standard paths in the registry and user site-packages.
3.6. Módulos adicionais¶
Mesmo que o Python tenha como objetivo ser portável através de todas as plataformas, existem recursos que são únicos para o Windows. Alguns módulos, em ambas as bibliotecas padrão e externa, e trechos de código existem para usar esses recursos.
Os módulos padrão específicos para Windows estão documentados em Serviços Específicos do MS Windows.
3.6.1. PyWin32¶
The PyWin32 module by Mark Hammond is a collection of modules for advanced Windows-specific support. This includes utilities for:
- Component Object Model (COM)
- Chamadas à API Win32
- Registro
- Log de Eventos
- Microsoft Foundation Classes (MFC) interface de usuário
PythonWin é uma aplicação MFC de exemplo enviada com o PyWin32. É uma IDE embutível com um depurador embutido.
Ver também
- Win32 How Do I…?
- por Tim Golden
- Python and COM
- by David and Paul Boddie
3.6.2. cx_Freeze¶
cx_Freeze is a distutils
extension (see Estendendo Distutils) which wraps Python scripts into
executable Windows programs (*.exe
files). When you have done this,
you can distribute your application without requiring your users to install
Python.
3.6.3. WConio¶
Dado que a camada de manipulação de terminal avançada do Python, curses
, é restrita a sistemas tipo Unix, existe uma biblioteca exclusiva para o Windows: Windows Console I/O para Python.
WConio é um encapsulador para o CONIO.H
do Turbo-C usado para criar texto sob interfaces de usuário.
3.7. Compilando Python no Windows¶
If you want to compile CPython yourself, first thing you should do is get the source. You can download either the latest release’s source or just grab a fresh checkout.
A árvore de fontes contém uma solução de construção e arquivos de projeto para o Microsoft Visual Studio 2015, que é o compilador usado para construir as versões do Python oficiais. Esses arquivos estão no diretório PCbuild
.
Configra o PCbuild/readme.txt
para informações gerais sobre o processo de construção.
Para módulos de extensão, consulte Construindo Extensões C e C++ no Windows.
Ver também
- Python + Windows + distutils + SWIG + gcc MinGW
- ou “Creating Python extensions in C/C++ with SWIG and compiling them with MinGW gcc under Windows” ou “Installing Python extension with distutils and without Microsoft Visual C++” por Sébastien Sauvage, 2003
- MingW – Python extensions
- by Trent Apted et al, 2007
3.8. Embedded Distribution¶
Novo na versão 3.5.
A distribuição embutida é um arquivo ZIP contendo um ambiente Python mínimo. Ela foi criada para atuar como parte de outra aplicação, ao invés de ser diretamente acessada por usuários finais.
When extracted, the embedded distribution is (almost) fully isolated from the
user’s system, including environment variables, system registry settings, and
installed packages. The standard library is included as pre-compiled and
optimized .pyc
files in a ZIP, and python3.dll
, python35.dll
,
python.exe
and pythonw.exe
are all provided. Tcl/tk (including all
dependants, such as Idle), pip and the Python documentation are not included.
Nota
A distribuição embutida não inclui o Microsoft C Runtime e é de responsabilidade do instalador da aplicação providenciar isso. O aplicativo de tempo de execução pode já ter sido instalado no sistema de um usuário previamente ou automaticamente via Windows Update, e pode ser detectado procurando por ucrtbase.dll
no diretório do sistema.
Pacotes de terceiros devem ser instalados pelo instalador da aplicação juntamente com a distribuição embutida. Usar o pip para gerenciar as dependências como em uma instalação regular do Python não é suportado nessa distribuição, apesar de que com algum cuidado pode ser possível incluir e usar o pip para atualizações automáticas. Em geral, pacotes de terceiros devem ser tratados como parte da aplicação (“vendoring”) para que o desenvolvedor consiga garantir compatibilidade com versões mais recentes antes de fornecer atualizações para os usuários.
Os dois casos de uso recomendados para essa distribuição são descritos abaixo.
3.8.1. Aplicação Python¶
Uma aplicação escrita em Python não requer necessariamente que os usuários estejam cientes deste fato. A distribuição embutida pode ser usada neste caso para incluir uma versão privada do pacote de instalação do Python. Dependendo de quão transparente deve ser (ou pelo contrário, quão profissional deve parecer), existem duas opções.
Usando um executável especializado como inicializador requer um pouco de código, mas fornece a experiência mais transparente para os usuários. Com um inicializador customizado, não existem indicações óbvias que o programa está rodando em Python: ícones podem ser personalizados, informações da empresa e versão podem ser especificadas, e associações de arquivo se comportam de forma apropriada. Na maioria dos casos, um inicializador personalizado deve simplesmente ser capaz de chamar Py_Main
com uma linha de comando predefinida (hard-coded).
A abordagem mais simples é fornecer um arquivo batch ou um atalho gerado que chama diretamente o python.exe
ou pythonw.exe
com os argumentos de linha de comando necessários. Neste caso, a aplicação irá aparecer como Python e não seu nome real, e os usuários podem ter problemas em distinguir ela de outros processos ou associações de arquivo em Python.
Com a abordagem anterior, pacotes devem ser instalados como diretórios juntamente do executável do Python para garantir que estarão disponíveis no caminho do ambiente. Com o instalador especializado, pacotes podem ser armazenados em outras localidades já que há uma oportunidade de especificar o caminho de busca antes de executar a aplicação.
3.8.2. Incorporando Python¶
Aplicações escritas em código nativo frequentemente precisam de alguma forma de linguagem de script, e a distribuição embutida do Python pode ser usada para esse propósito. Em geral, a maior parte da aplicação é em código nativo, e uma parte irá ou invocar python.exe
ou usar diretamente python3.dll
. Para ambos os casos, extrair a distribuição embutida em um subdiretório da instalação da aplicação é suficiente para providenciar um interpretador Python carregável.
Para uso da aplicação, pacotes podem ser instalados em qualquer local já que há uma oportunidade de especificar caminhos de busca antes de inicializar o interpretador. De outra forma, não existem diferenças fundamentais entre usar a distribuição embutida ou a instalação regular.
3.9. Outros recursos¶
Ver também
- Python Programming On Win32
- “Help for Windows Programmers” by Mark Hammond and Andy Robinson, O’Reilly Media, 2000, ISBN 1-56592-621-8
- A Python for Windows Tutorial
- by Amanda Birmingham, 2004
- PEP 397 - Launcher do Python para Windows
- A proposta do launcher do Python a ser incluído na distribuição Python.