Bug report #5420
GRASS gives python error if input layer path contains non ascii chars
Status: | Closed | ||
---|---|---|---|
Priority: | Normal | ||
Assignee: | - | ||
Category: | Processing/GRASS | ||
Affected QGIS version: | 2.4.0 | Regression?: | No |
Operating System: | Easy fix?: | No | |
Pull Request or Patch supplied: | No | Resolution: | worksforme |
Crashes QGIS or corrupts data: | No | Copied to github as #: | 15080 |
Description
Hello to all,
This is my first intervention here so i hope that i'm doing this right.
My versions are:
OS: Windows 7 64 bits
QGIS: 1.7.4 revision 411aff6
sextante 1.0.4
If I tried execute any grass algorithm like v.buffer, without any vector in the qgis project, the tool seems to be working well (like image '1'.
But if i have a shapefile open in the project give me a error (like the image '2') and I can't execute any tool.
Is very strange. Does anyone know the resolution? This only happen with grass algorithms.
Thanks
History
#1 Updated by Giovanni Manghi over 12 years ago
Hi Pedro,
check also the sextante log and post any message that can be useful (of there is something more than the python error already attached).
#2 Updated by Pedro Costa over 12 years ago
Hi Giovanni,
I found the problem. If my shapes have in a directory named with special characters, like 'ã' or 'ç' gives me the error.
Only happen with some algorithms.
#3 Updated by Giovanni Manghi over 12 years ago
- Subject changed from Grass give a python error to GRASS gives python error if input layer path contains non ascii chars
#4 Updated by Giovanni Manghi almost 12 years ago
this seems to be still true, the message is
Traceback (most recent call last):
File "C:\\OSGeo4W\\apps\\qgis-dev\\python\\plugins\\sextante\\core\\GeoAlgorithm.py", line 117, in execute
self.processAlgorithm(progress)
File "C:\\OSGeo4W\\apps\\qgis-dev\\python\\plugins\\sextante\\grass\\GrassAlgorithm.py", line 324, in processAlgorithm
self.consoleOutput = GrassUtils.executeGrass(commands, progress, outputCommands);
File "C:\\OSGeo4W\\apps\\qgis-dev\\python\\plugins\\sextante\\grass\\GrassUtils.py", line 262, in executeGrass
command = GrassUtils.prepareGrassExecution(commands)
File "C:\\OSGeo4W\\apps\\qgis-dev\\python\\plugins\\sextante\\grass\\GrassUtils.py", line 241, in prepareGrassExecution
GrassUtils.createGrassScript(commands)
File "C:\\OSGeo4W\\apps\\qgis-dev\\python\\plugins\\sextante\\grass\\GrassUtils.py", line 167, in createGrassScript
output.write(command + "\
")
UnicodeEncodeError: 'ascii' codec can't encode character u'\\xe7' in position 54: ordinal not in range(128)
#5 Updated by Pedro Venâncio almost 12 years ago
Hi Giovanni,
Confirmed also on Linux:
Traceback (most recent call last): File "/usr/share/qgis/python/plugins/sextante/core/GeoAlgorithm.py", line 117, in execute self.processAlgorithm(progress) File "/usr/share/qgis/python/plugins/sextante/grass/GrassAlgorithm.py", line 324, in processAlgorithm self.consoleOutput = GrassUtils.executeGrass(commands, progress, outputCommands); File "/usr/share/qgis/python/plugins/sextante/grass/GrassUtils.py", line 262, in executeGrass command = GrassUtils.prepareGrassExecution(commands) File "/usr/share/qgis/python/plugins/sextante/grass/GrassUtils.py", line 248, in prepareGrassExecution GrassUtils.createGrassBatchJobFileFromGrassCommands(commands) File "/usr/share/qgis/python/plugins/sextante/grass/GrassUtils.py", line 176, in createGrassBatchJobFileFromGrassCommands fout.write(command + "\ ") UnicodeEncodeError: 'ascii' codec can't encode character u'\\xc1' in position 38: ordinal not in range(128)
Works fine if the same data is stored on a path without non ascii characters.
#6 Updated by Giovanni Manghi about 11 years ago
still true on qgis 2.0.1
#7 Updated by Alexander Bruy over 10 years ago
- Status changed from Open to Feedback
Should be fixed in 3d6f17b067. Please test
#8 Updated by Giovanni Manghi over 10 years ago
- Status changed from Feedback to Closed
#9 Updated by Nicole Stoffels over 10 years ago
- Assignee changed from Victor Olaya to Giovanni Manghi
- Status changed from Closed to Reopened
Still not working on qgis 2.4.0 (this qgis uses python 2.7.3, gcc 4.6.3). I have 64-bit linux machine with ubuntu 12.4.
As far as I can see, in the commit 3d6f17b067 'open' is replaced by 'codecs.open' allowing utf-8 encoding. However, that does not fix the problem with non-ascii characters in the path.
#10 Updated by Giovanni Manghi over 10 years ago
- Status changed from Reopened to Feedback
Nicole Stoffels wrote:
Still not working on qgis 2.4.0 (this qgis uses python 2.7.3, gcc 4.6.3). I have 64-bit linux machine with ubuntu 12.4.
As far as I can see, in the commit 3d6f17b067 'open' is replaced by 'codecs.open' allowing utf-8 encoding. However, that does not fix the problem with non-ascii characters in the path.
It works fine here on the very same OS. You are probably using an old version of Processing. Check in ~./qgis2/pyhton/plugins
if there is a "processing" folder then delete it, close qgis and try again.
#11 Updated by Giovanni Manghi about 10 years ago
- Project changed from 78 to QGIS Application
- Category deleted (
59) - Affected QGIS version set to 2.4.0
- Crashes QGIS or corrupts data set to No
#12 Updated by Giovanni Manghi about 10 years ago
- Category set to Processing/GRASS
#13 Updated by Giovanni Manghi about 10 years ago
- Resolution set to worksforme
- Status changed from Feedback to Closed
- Assignee deleted (
Giovanni Manghi)
closing for lack of feedback, please reopen if necessary.