Ajuda com erro Phyton

3,673 views
Skip to first unread message

Harlan Rodrigo

unread,
Jun 7, 2012, 12:45:18 PM6/7/12
to qgisbrasil
Olá Pessoal,

Estou com sérios problemas com meu Qgis, pois muitas funções e plugins
que utilizo geram erros, mas como não entendo de linguagem de
programação, não tenho a mínima ideia de onde esteja o erro, pois já
reintalei o programa diversas vezes, apagando tanto a pasta padrão de
instalação e a outra de onde são salvos os plugins. Não sei se o erro
pode estar em alguma versão phyton no meu computador, se é que isso
existe realmente.

Só um exemplo, quero gerar uma RGB com o plugin "RGB composition", mas
gera esse erro:

An error has occured while executing Python code:

Traceback (most recent call last):
File "C:/Users/Harlan/.qgis/python/plugins\rgb\ui_control.py", line
31, in chooseR
self.choose(self.comboBox_3)
File "C:/Users/Harlan/.qgis/python/plugins\rgb\ui_control.py", line
27, in choose
self.folder=os.path.split(str(file))[0]
UnicodeEncodeError: 'ascii' codec can't encode character u'\xe9' in
position 34: ordinal not in range(128)

Python version:
2.7.2 (default, Jun 12 2011, 15:08:59) [MSC v.1500 32 bit (Intel)]


QGIS version:
1.7.4-Wroclaw Wroclaw, 411aff6

Python path: ['C:/Users/Harlan/.qgis/python/plugins\\sextante', 'C:/
PROGRA~2/Quantum GIS Wroclaw/apps/qgis/./python', 'C:/Users/
Harlan/.qgis/python', 'C:/Users/Harlan/.qgis/python/plugins', 'C:/
PROGRA~2/Quantum GIS Wroclaw/apps/qgis/./python/plugins', 'C:\
\PROGRA~2\\Quantum GIS Wroclaw\\bin\\python27.zip', 'C:\\PROGRA~2\
\Quantum GIS Wroclaw\\apps\\Python27\\DLLs', 'C:\\PROGRA~2\\Quantum
GIS Wroclaw\\apps\\Python27\\lib', 'C:\\PROGRA~2\\Quantum GIS Wroclaw\
\apps\\Python27\\lib\\plat-win', 'C:\\PROGRA~2\\Quantum GIS Wroclaw\
\apps\\Python27\\lib\\lib-tk', 'C:\\PROGRA~2\\Quantum GIS Wroclaw\\apps
\\qgis\\bin', 'C:\\PROGRA~2\\Quantum GIS Wroclaw\\apps\\Python27', 'C:\
\PROGRA~2\\Quantum GIS Wroclaw\\apps\\Python27\\lib\\site-packages',
'C:\\PROGRA~2\\Quantum GIS Wroclaw\\apps\\Python27\\lib\\site-packages\
\PIL', 'C:\\PROGRA~2\\Quantum GIS Wroclaw\\apps\\Python27\\lib\\site-
packages\\win32', 'C:\\PROGRA~2\\Quantum GIS Wroclaw\\apps\\Python27\
\lib\\site-packages\\win32\\lib', 'C:\\PROGRA~2\\Quantum GIS Wroclaw\
\apps\\Python27\\lib\\site-packages\\Pythonwin', 'C:\\PROGRA~2\
\Quantum GIS Wroclaw\\apps\\Python27\\lib\\site-packages\\wx-2.8-msw-
unicode', 'C:\\PROGRA~2\\Quantum GIS Wroclaw\\apps\\qgis\\python\
\plugins\\fTools\\tools', '/usr/share/qgis/python']

Outras pessoas têm esse problema, mas como até agora não vi uma
solução, estou aqui pedindo novamente.

Tenho outros problemas com o Sextante e com a geração de declividades
a partir de SRTM, tanto em graus quanto em porcentagem, mas depois
tiro essas outras dúvidas...rs

Muito obrigado!

José Antonio Rocha

unread,
Jun 7, 2012, 1:25:21 PM6/7/12
to qgisb...@googlegroups.com

Em 7 de junho de 2012 13:45, Harlan Rodrigo <harlan...@hotmail.com> escreveu:
UnicodeEncodeError: 'ascii' codec can't encode character u'\xe9' in
position 34: ordinal not in range(128)

Olá, Harlan!

Olhando rapidamente este erro, parece que o script Python está tendo problemas com o caracter de código \xe9, caracter "é". 
Pode ser um nome de arquivo ou de pasta, que não está sendo corretamente tratado pelo script.

--
Meira
nome: "José Antonio Meira da Rocha"
googletalk: email: MSN: joseanto...@gmail.com
veículo: [ http://meiradarocha.jor.br ]
fones: 55-8411-3047 / 55-3744-2994


José Antonio Rocha

unread,
Jun 7, 2012, 2:11:59 PM6/7/12
to qgisb...@googlegroups.com
Para consertar este problema em sistemas operacionais modernos, que usam codificação UTF-8 (Windows, Linux), edite a linha 27 do arquivo "C:/Users/Harlan/.qgis/python/plugins\rgb\ui_control.py" (edite com o bloco de notas, não com o Word).

Em 7 de junho de 2012 15:00, José Antonio Rocha <joseanto...@gmail.com> escreveu:
    def choose(self,targetbox):
        file=self.filedialog.getOpenFileName(None,"Choose band's raster file...",self.folder)
        targetbox.addItem(file)
        targetbox.setCurrentIndex(targetbox.count()-1)
        self.folder=os.path.split(str(file))[0]
 
Adicione ".toUtf8()" depois da variável "file" na linha em vermelho:

self.folder=os.path.split(str(file.toUtf8()))[0]

Funcionou no meu Ubuntu 12.04. Deve funcionar no Windows.

José Antonio Rocha

unread,
Jun 7, 2012, 2:00:07 PM6/7/12
to qgisb...@googlegroups.com
O trecho que causa o erro, no arquivo "C:/Users/Harlan/.qgis/python/
plugins\rgb\ui_control.py", é este em vermelho:

    def choose(self,targetbox):
        file=self.filedialog.getOpenFileName(None,"Choose band's raster file...",self.folder)
        targetbox.addItem(file)
        targetbox.setCurrentIndex(targetbox.count()-1)
        self.folder=os.path.split(str(file))[0]

O erro acontece depois que você escolhe um arquivo de banda. Possivelmente, você está procurando um arquivo de banda com o caracter especial "é" no nome ou numa pasta com este caracter no nome.

É resultado de um programa mal feito. O programador deveria ter em mente que todas as línguas ocidentais (inclusive o inglês) podem usar caracteres acentuados, e deveria ter feito o tratamento adequado dos nomes de arquivo.

Harlan Rodrigo

unread,
Jun 11, 2012, 8:13:31 AM6/11/12
to qgisb...@googlegroups.com
Muito obrigado!! Vou fazer os testes quando chegar em casa e ver se consigo chegar num resultado positivo. Já consegui entender mais esse sistema de nomes, inclusive nas pastas.

Harlan Rodrigo
Geografia - UFBA



From: joseanto...@gmail.com
Date: Thu, 7 Jun 2012 15:00:07 -0300
Subject: Re: [QGISBrasil:1300] Ajuda com erro Phyton
To: qgisb...@googlegroups.com
--
---
Você recebeu esta mensagem do Grupo "QGISBrasil"
Para postar neste grupo, envie um e-mail para qgisb...@googlegroups.com
Para cancelar a sua inscrição neste grupo, envie um e-mail paragisbrasi...@googlegroups.com
Para ver mais opções, visite este grupo em
http://groups.google.com/group/qgisbrasil?hl=pt?hl=pt-BR

Lilian

unread,
Jun 21, 2012, 4:48:20 PM6/21/12
to qgisb...@googlegroups.com
Olá José,

estou com problemas semelhantes aqui quando tento rodar o plugin Point Sampling Tool (havia acabado de mandar num outro tópico).
O plugin "funciona" (abre a janela com opções) apenas quando não há camadas de pontos adicionadas no projeto. Mas, para rodar o plugin, as camadas devem estar adicionadas.
E, quando estão, o plugin não funciona, aparecem erros semelhantes, de "UnicodeEncodeError: 'ascii' codec can't encode character u'\xed'".


Entendi sua explicação, e também uso Ubuntu (mas o 10.04), e tentei aplicá-las. Mas não soube a posição em que poderia inserir o ".toUtf8()" [isso tudo se meu problema fosse realmente resolvido da mesma forma, ia fazer o teste].

Não sei se tem a ver ou foi coincidência que o local de inserir o temo, após a variável file, é na posição 34, com o erro do Harlan ("u'\xe9' in position 34").


No meu caso, não consegui descobrir, pois a posição indicada no erro é estranha..


São 2 janelas de erros que aparecem:

Um erro ocorreu enquanto executava o seguinte código Python:



Traceback (most recent call last):

  File "/home/lili/.qgis//python/plugins/pointsamplingtool/doPointSamplingTool.py", line 98, in updateFieldsList
    self.inData.addItem(str(self.sampItems[i][0].name()) + " : " + str(self.sampItems[i][j][0]) + " (source point)")
UnicodeEncodeError: 'ascii' codec can't encode character u'\xed' in position 5: ordinal not in range(128)

Versão do Python:
2.6.5 (r265:79063, Apr 16 2010, 13:28:26)
[GCC 4.4.3]


Versão do QGIS
1.8.0-Lisboa Lisboa, exported

Caminho para o Python: ['/home/lili/.qgis/python/plugins/elevation', '/usr/share/qgis/python', '/home/lili/.qgis//python', '/home/lili/.qgis//python/plugins', '/usr/share/qgis/python/plugins', '/usr/lib/python2.6', '/usr/lib/python2.6/plat-linux2', '/usr/lib/python2.6/lib-tk', '/usr/lib/python2.6/lib-old', '/usr/lib/python2.6/lib-dynload', '/usr/lib/python2.6/dist-packages', '/usr/lib/python2.6/dist-packages/PIL', '/usr/lib/python2.6/dist-packages/gst-0.10', '/usr/lib/pymodules/python2.6', '/usr/lib/python2.6/dist-packages/gtk-2.0', '/usr/lib/pymodules/python2.6/gtk-2.0', '/usr/local/lib/python2.6/dist-packages', '~/.qgis/python', '/home/lili/.qgis/python/plugins/mmqgis/forms', '/usr/share/qgis/python/plugins/fTools/tools']

-


2º erro: -

Um erro ocorreu enquanto executava o seguinte código Python:



Traceback (most recent call last):

  File "/home/lili/.qgis//python/plugins/pointsamplingtool/pointSamplingTool.py", line 61, in run
    dialoga = doPointSamplingTool.Dialog(self.iface)
  File "/home/lili/.qgis//python/plugins/pointsamplingtool/doPointSamplingTool.py", line 88, in __init__
    self.updateFieldsList()
  File "/home/lili/.qgis//python/plugins/pointsamplingtool/doPointSamplingTool.py", line 98, in updateFieldsList
    self.inData.addItem(str(self.sampItems[i][0].name()) + " : " + str(self.sampItems[i][j][0]) + " (source point)")
UnicodeEncodeError: 'ascii' codec can't encode character u'\xed' in position 5: ordinal not in range(128)

Versão do Python:
2.6.5 (r265:79063, Apr 16 2010, 13:28:26)
[GCC 4.4.3]


Versão do QGIS
1.8.0-Lisboa Lisboa, exported

Caminho para o Python: ['/home/lili/.qgis/python/plugins/elevation', '/usr/share/qgis/python', '/home/lili/.qgis//python', '/home/lili/.qgis//python/plugins', '/usr/share/qgis/python/plugins', '/usr/lib/python2.6', '/usr/lib/python2.6/plat-linux2', '/usr/lib/python2.6/lib-tk', '/usr/lib/python2.6/lib-old', '/usr/lib/python2.6/lib-dynload', '/usr/lib/python2.6/dist-packages', '/usr/lib/python2.6/dist-packages/PIL', '/usr/lib/python2.6/dist-packages/gst-0.10', '/usr/lib/pymodules/python2.6', '/usr/lib/python2.6/dist-packages/gtk-2.0', '/usr/lib/pymodules/python2.6/gtk-2.0', '/usr/local/lib/python2.6/dist-packages', '~/.qgis/python', '/home/lili/.qgis/python/plugins/mmqgis/forms', '/usr/share/qgis/python/plugins/fTools/tools']


-


*A linha 98 do arquivo doPointSamplingTool.py", line 98 diz "#NOT YET FINISHED - to be switched to tree rather", no seguinte contexto:


def updateFieldsList(self):
self.inData.clear()
if not self.inSample.count(): return
i = str(self.inSample.currentText())
for j in range(1, len(self.sampItems[i])):
#clear previously enabled fields (as they aren't selected in the widget)
self.sampItems[i][j][2] = False
self.inData.addItem(str(self.sampItems[i][0].name()) + " : " + str(self.sampItems[i][j][0]) + " (source point)")
#NOT YET FINISHED - to be switched to tree rather
# self.inData.addItem(str(self.sampItems[i][0].name()) + " (X coordinate)")
# self.inData.addItem(str(self.sampItems[i][0].name()) + " (Y coordinate)")



*A linha 88 (2º erro), não ha nada escrito!!!

*E, por fim, a linha 61 do arquivo PointSamplingTool.py contém "  dialoga = doPointSamplingTool.Dialog(self.iface)", no contexto:

 def run(self):
  # create and show a configuration dialog or something similar
  dialoga = doPointSamplingTool.Dialog(self.iface)
  dialoga.exec_()


Enfim, não consegui nem chutar a resolução do meu problema, baseando nas informações que vc escreveu.

Se for relativamente tranquilo, gostaria que pudesse dar uma força.

Abraços,
Lílian

José Antonio Rocha

unread,
Jun 21, 2012, 9:43:50 PM6/21/12
to qgisb...@googlegroups.com
Olá!

É sempre confuso achar a posição onde colocar isto. Acho que é no final das strings. Naquele caso, era uma string do Qt.
Nestes seus casos, acho que é uma string normal Python. O comando deve ser outro.

No início do script, pegue a codificação do sistema:

import sys
encoding = sys.getfilesystemencoding()


E tente converter as strings nas linhas que dão erro:

self.inData.addItem(str(self.sampItems[i][0].name()).encode(encoding) + " : " + str(self.sampItems[i][j][0]).encode(encoding) + " (source point)")

Há grandes chances de não ser a maneira correta.

Mas o caracter que provoca o erro é "í"; Tente não colocar acentos ou cedilha nos nomes das layers.

Não era pra dar este erro, porque nas linhas 66 e 67 os nomes são convertidos para unicode:

    self.sampItems[unicode(layer.name())] = theItem
    self.inSample.addItem(layer.name())

Verifique também se o plugin é da versão mais nova.

José Walter Lima Mota

unread,
May 30, 2014, 8:01:13 AM5/30/14
to qgisb...@googlegroups.com
Olá José, bom dia!

Chegamos ao ano de 2014, e este problema ainda está assombrando alguns usuários. 

Estou com o mesmo problema da Lilian, mas em uma linha diferente. Este aqui é o erro:

Um erro ocorreu enquanto executava o seguinte código Python:

Traceback (most recent call last):
  File "C:/OSGeo4W/apps/qgis/./python/plugins\processing\gui\ConfigDialog.py", line 147, in accept
    setting.value = str(self.items[setting].text())
UnicodeEncodeError: 'ascii' codec can't encode character u'\xed' in position 12: ordinal not in range(128)

Versão do Python:
2.7.4 (default, Apr  6 2013, 19:54:46) [MSC v.1500 32 bit (Intel)]


Versão do QGIS
2.2.0-Valmiera Valmiera, c3a2817

Caminho para o Python: ['C:/OSGeo4W/apps/qgis/./python/plugins\\processing', 'C:/OSGeo4W/apps/qgis/./python', u'C:/Users/Fam\xedlia/.qgis2/python', u'C:/Users/Fam\xedlia/.qgis2/python/plugins', 'C:/OSGeo4W/apps/qgis/./python/plugins', 'C:\\OSGeo4W\\bin\\python27.zip', 'C:\\OSGeo4W\\apps\\Python27\\DLLs', 'C:\\OSGeo4W\\apps\\Python27\\lib', 'C:\\OSGeo4W\\apps\\Python27\\lib\\plat-win', 'C:\\OSGeo4W\\apps\\Python27\\lib\\lib-tk', 'C:\\OSGeo4W\\bin', 'C:\\OSGeo4W\\apps\\Python27', 'C:\\OSGeo4W\\apps\\Python27\\lib\\site-packages', 'C:\\OSGeo4W\\apps\\Python27\\lib\\site-packages\\GDAL-1.11.0-py2.7-win32.egg', 'C:\\OSGeo4W\\apps\\Python27\\lib\\site-packages\\PIL', 'C:\\OSGeo4W\\apps\\Python27\\lib\\site-packages\\win32', 'C:\\OSGeo4W\\apps\\Python27\\lib\\site-packages\\win32\\lib', 'C:\\OSGeo4W\\apps\\Python27\\lib\\site-packages\\Pythonwin', 'C:\\OSGeo4W\\apps\\Python27\\lib\\site-packages\\Shapely-1.2.18-py2.7-win32.egg', 'C:\\OSGeo4W\\apps\\Python27\\lib\\site-packages\\wx-2.8-msw-unicode', 'C:\\OSGeo4W\\apps\\qgis\\python\\plugins\\fTools\\tools']

Já existe uma solução?

Muito obrigado pelo tempo. Um abraço!

Valdinei Gonçalves

unread,
Jul 5, 2016, 3:51:39 PM7/5/16
to qgisbrasil
Nenhum plugin é instalado por esse erro ao iniciar o programa:


Traceback (most recent call last):

  File "", line 1, in
  File "C:/QGISWI~1/apps/qgis-ltr/./python\qgis\__init__.py", line 36, in
    from qgis.core import QgsFeature, QgsGeometry
  File "C:/QGISWI~1/apps/qgis-ltr/./python\qgis\core\__init__.py", line 1, in
    import inspect
  File "C:\Program Files (x86)\Visual Components\Python 2.2\Lib\inspect.py", line 733
: Non-ASCII character '\xe9' in file C:\Program Files (x86)\Visual Components\Python 2.2\Lib\inspect.py on line 733, but no encoding declared; see http://www.python.org/peps/pep-0263.html for details (inspect.py, line 733)

Versão do Python:
2.7.5 (default, May 15 2013, 22:44:16) [MSC v.1500 64 bit (AMD64)]

QGIS versão:
2.8.9-Wien 'Wien', 26c3ece

Caminho para o Python:
['C:/QGISWI~1/apps/qgis-ltr/./python', u'C:/Users/Valdinei/.qgis2/python', u'C:/Users/Valdinei/.qgis2/python/plugins', 'C:/QGISWI~1/apps/qgis-ltr/./python/plugins', 'C:\\QGISWI~1\\apps\\Python27\\lib\\site-packages\\matplotlib-1.3.1-py2.7-win-amd64.egg', 'C:\\QGISWI~1\\apps\\Python27\\lib\\site-packages\\nose-1.3.3-py2.7.egg', 'C:\\QGISWI~1\\apps\\Python27\\lib\\site-packages\\tornado-4.0.1-py2.7-win-amd64.egg', 'C:\\QGISWI~1\\apps\\Python27\\lib\\site-packages\\backports.ssl_match_hostname-3.4.0.2-py2.7.egg', 'C:\\QGISWI~1\\apps\\Python27\\lib\\site-packages\\certifi-14.05.14-py2.7.egg', 'C:\\Program Files (x86)\\Visual Components\\Python 2.2\\Lib', 'C:\\Program Files (x86)\\Visual Components\\Python 2.2\\Lib\\lib-tk', 'C:\\Program Files (x86)\\Visual Components\\Python 2.2\\Dlls', 'C:\\QGISWI~1\\apps\\Python27\\DLLs', 'C:\\QGISWI~1\\apps\\Python27\\lib', 'C:\\QGISWI~1\\apps\\Python27\\lib\\lib-tk', 'C:\\QGISWI~1\\bin', 'C:\\QGISWI~1\\apps\\Python27', 'C:\\QGISWI~1\\apps\\Python27\\lib\\site-packages', 'C:\\QGISWI~1\\apps\\Python27\\lib\\site-packages\\PIL', 'C:\\QGISWI~1\\apps\\Python27\\lib\\site-packages\\jinja2-2.7.2-py2.7.egg', 'C:\\QGISWI~1\\apps\\Python27\\lib\\site-packages\\markupsafe-0.23-py2.7-win-amd64.egg', 'C:\\QGISWI~1\\apps\\Python27\\lib\\site-packages\\python_dateutil-2.2-py2.7.egg', 'C:\\QGISWI~1\\apps\\Python27\\lib\\site-packages\\pytz-2012j-py2.7.egg', 'C:\\QGISWI~1\\apps\\Python27\\lib\\site-packages\\win32', 'C:\\QGISWI~1\\apps\\Python27\\lib\\site-packages\\win32\\lib', 'C:\\QGISWI~1\\apps\\Python27\\lib\\site-packages\\Pythonwin', 'C:\\QGISWI~1\\apps\\Python27\\lib\\site-packages\\Shapely-1.2.18-py2.7-win-amd64.egg', 'C:\\QGISWI~1\\apps\\Python27\\lib\\site-packages\\six-1.6.1-py2.7.egg', 'C:\\QGISWI~1\\apps\\Python27\\lib\\site-packages\\wx-2.8-msw-unicode', 'C:\\QGISWI~1\\apps\\Python27\\lib\\site-packages\\xlrd-0.9.2-py2.7.egg', 'C:\\QGISWI~1\\apps\\Python27\\lib\\site-packages\\xlwt-0.7.5-py2.7.egg']



Socorroo!!!

Valdinei Gonçalves

unread,
Jul 5, 2016, 3:51:50 PM7/5/16
to qgisbrasil
Reply all
Reply to author
Forward
0 new messages