Estranhamente é executado rapidamente, mas o depurador trava sem exceção

0
Em primeiro lugar, estranhamente quickly run no meu aplicativo é executado corretamente e acredito que não fiz alterações na fonte, pois a depuração rápida estava funcionando (proclamar que o erro não é desagradável, eu sei!).

O próprio winpdb trava enquanto meu aplicativo é inicializado dentro do boilerplate Window.py dentro de Gio.Settings() .

GLib-GIO-ERROR **: Settings schema 'net.launchpad.cookety-app' is not installed.

Eu verifiquei a pasta data / glib-2.0 / schemas e tudo está como estava quando eu criei o projeto com os esquemas presentes.

Eu passei pelo código dentro /usr/lib/python2.7/dist-packages/gi/overrides/Gio.py , e descobri que Settings.__init__() é onde ele falha .

Sem exceções, nenhum depurador pausando, apenas uma conexão reta perdida e winpdb fecha, tornando insano para mim até chegar à linha de código que cria o problema ... mais frustrante. Por favor ajude!

    
por William Culver 26.06.2012 / 15:01

1 resposta

2

O Winpdb não consegue localizar o esquema de configurações simples que é usado para armazenar preferências. Por exemplo, se você procurar no arquivo Preferences.py que gera automaticamente, você verá uma chamada para Gio.Settings ("net.launchpad.XXX") que recupera todas as preferências armazenadas localmente para seu aplicativo, com base na esquema definido.

A documentação para esquemas de compilação simplificada nos diz que os esquemas são pesquisados em caminhos que combinam glib-2.0 / schemas / sob os diretórios em XDG_DATA_DIRS. Então você tem uma escolha. Você pode instalar formalmente o esquema da seguinte forma:

sudo ln -s $PWD/data/glib-2.0/schemas/net.launchpad.XXX /usr/share/glib-2.0/schemas/
sudo glib-compile-schemas /usr/share/glib-2.0/schemas

Ou, muito mais simplesmente, você pode definir a variável em tempo de execução:

XDG_DATA_DIRS=$XDG_DATA_DIRS:data quickly debug

Por coincidência, o mesmo conselho se aplica à execução de seu aplicativo fora do Quickly, por exemplo

XDG_DATA_DIRS=$XDG_DATA_DIRS:data python bin/XXX

Observe que os comandos acima presumem que você esteja no diretório raiz do seu projeto, como provavelmente você está usando rapidamente.

    
por IlluminAce 09.01.2013 / 21:45