Hoje veremos como preparar o ambiente de desenvolvimento para a criação de aplicativos com a linguagem de programação Python (PyGObject) e o toolkit gráfico GTK no Microsoft Windows.
Posts relacionados:
MSYS2
O MSYS2 permite que pacotes, ferramentas e bibliotecas do Linux sejam instalados e executados de forma nativa no Microsoft Windows.
Para a instalação e gestão dos pacotes, o MSYS2 utiliza o gerenciador de pacotes Pacman.
Instalação
A instalação do MSYS2 é bem simples.
Antes de mais nada, acesse o site oficial https://www.msys2.org/ e realize o download do instalador:
Assim que o download for concluído de 2 cliques sobre o instalador que foi baixado:
O instalador é bem simples e não é necessário alterar as configurações padrão que são exibidas nas telas.
Clique em Next e vá avançando até finalizar a instalação:
Com o fim da instalação procure pelo terminal do MSYS2 no meu iniciar do Microsoft Windows:
Com o terminal aberto realize a atualização dos pacotes que vem instalados:
pacman -Syu
Assim que as atualizações estiverem finalizadas pode ser necessário fechar e abrir o novamente.
GTK
O comando exibido nessa sessão irá instalar as bibliotecas do GTK, a linguagem de programação Python e o binding PyGObject.
Dependências
🚨 Os comandos abaixo devem ser executados no terminal do MSYS2!
pacman -S \
mingw-w64-x86_64-python3 \
mingw-w64-x86_64-python3-pip \
mingw-w64-x86_64-python3-gobject \
mingw-w64-x86_64-python-autopep8 \
mingw-w64-x86_64-python-pylint \
mingw-w64-x86_64-python-isort \
mingw-w64-x86_64-python-poetry \
mingw-w64-x86_64-blueprint-compiler \
mingw-w64-x86_64-gtk4 \
mingw-w64-x86_64-libadwaita
Assim que a instalação dos pacotes terminar devemos testar a comunicação da linguagem de programação Python com o toolkit GTK.
Abra o terminal MinGW x64 e digite:
python3 -c "import gi"
🚨 Não é o terminal do MSYS2 é o terminal MinGW x64.
Para testar via PowerShell ou outros terminais:
C:\msys64\mingw64\bin\python3 -c "import gi"
Se ao executar o comando nenhum erro for retornado, a instalação e configuração estão corretas 👍👋👋.
Configurando o interpretador Python
Visual Studio Code (VSCode)
Abra o Visual Studio Code, crie um novo arquivo e salve o mesmo com o nome main.py
ou qualquer outro nome que preferir.
No canto inferior direito do Visual Studio Code clique na opção Select python interpreter, pode ser que haja um interpretador Python selecionado, basta clicar sobre o mesmo para alterar:
Ao clicar nessa opção será aberto um menu onde você pode selecionar os interpretadores e ambientes virtuais disponíveis.
🚨 Se o interpretador Python que está instalado via MSYS2 não aparecer adicione manualmente o caminho
C:\msys64\mingw64\bin\python3
.Esse caminho até a pasta bin também pode ser adicionado ao
Path
do Microsoft Windows (recomendado).
PyCharm
Já no PyCharm vá até o menu File e clique na opção Settings, dentro de Settings procure por Python Interpreter e adicione o caminho até o interpretador Python ou ambiente virtual:
🚨 Se o interpretador Python que está instalado via MSYS2 não aparecer adicione manualmente o caminho
C:\msys64\mingw64\bin\python3
.
Código
Para testar a configuração no seu editor de texto ou IDE utilize o seguinte código de exemplo:
# -*- coding: utf-8 -*-
"""Python e GTK: PyGObject Gtk.ApplicationWindow()."""
import gi
gi.require_version(namespace='Gtk', version='4.0')
gi.require_version(namespace='Adw', version='1')
from gi.repository import Adw, Gio, Gtk
Adw.init()
class ExampleWindow(Gtk.ApplicationWindow):
def __init__(self, **kwargs):
super().__init__(**kwargs)
self.set_title(title='Python e GTK: PyGObject Gtk.ApplicationWindow()')
self.set_default_size(width=int(1366 / 2), height=int(768 / 2))
self.set_size_request(width=int(1366 / 2), height=int(768 / 2))
headerbar = Gtk.HeaderBar.new()
self.set_titlebar(titlebar=headerbar)
menu_button_model = Gio.Menu()
menu_button_model.append('Preferências', 'app.preferences')
menu_button = Gtk.MenuButton.new()
menu_button.set_icon_name(icon_name='open-menu-symbolic')
menu_button.set_menu_model(menu_model=menu_button_model)
headerbar.pack_end(child=menu_button)
# O seu código aqui:
# ...
class ExampleApplication(Adw.Application):
def __init__(self):
super().__init__(application_id='br.com.justcode.Example',
flags=Gio.ApplicationFlags.FLAGS_NONE)
self.create_action('quit', self.exit_app, ['<primary>q'])
self.create_action('preferences', self.on_preferences_action)
def do_activate(self):
win = self.props.active_window
if not win:
win = ExampleWindow(application=self)
win.present()
def do_startup(self):
Gtk.Application.do_startup(self)
def do_shutdown(self):
Gtk.Application.do_shutdown(self)
def on_preferences_action(self, action, param):
print('Ação app.preferences foi ativa.')
def exit_app(self, action, param):
self.quit()
def create_action(self, name, callback, shortcuts=None):
action = Gio.SimpleAction.new(name, None)
action.connect('activate', callback)
self.add_action(action)
if shortcuts:
self.set_accels_for_action(f'app.{name}', shortcuts)
if __name__ == '__main__':
import sys
app = ExampleApplication()
app.run(sys.argv)
Como resultado do código de exemplo temos:
Perfeito, o toolkit gráfico GTK está funcionando juntamente com a linguagem de programação Python no Microsoft Windows 🎉🎉.
Extra
Caso não tenha nenhuma versão do interpretador Python no sistema operacional, a pasta bin
do MSYS2 pode ser configurada na variável Path
do sistema operacional.
Para isso é preciso abrir o aplicativo Propriedades do sistema, acessar a aba Avançado e clicar no botão Variáveis de Ambiente…:
Assim que a janela Variáveis de Ambiente for aberta podemos configurar a variável Path
do usuário que está atualmente conectado ou para todos os usuários do sistema.
📝 Não existe certo ou errado.
Para adicionar uma nova entrada selecione a opção Path
e clique em Editar….
Na janela que se abre digite o caminho C:\msys64\mingw64\bin
:
Dessa forma o interpretador Python, as ferramentas e binários instalados através do MSYS2 serão reconhecidos pelos terminais do sistema operacional 😄.
Outra dica que pode ser interessante é criar os seus projetos dentro da pasta:
C:\msys64\home\nome-do-seu-usuário
Os terminais do MSYS2 sempre irão abrir no seu diretório home e criar os projetos nessa pasta pode facilitar a navegação.