Qgis + Python + Кириллица + Действия

Вопросы по свободной ГИС QGIS. Сообщения об ошибках, предложения по улучшению, локализация.
Ответить
Аватара пользователя
ANAT01
Активный участник
Сообщения: 196
Зарегистрирован: 18 апр 2012, 14:41
Репутация: 57

Qgis + Python + Кириллица + Действия

Сообщение ANAT01 » 16 апр 2013, 04:27

В Qgis нужно повесить действие на открытие файла с кириллическим именем.
OS: Windows 7 x64
Qgis: 1.8 (NextGIS)

Открываю консоль python (Модули > Консоль Python) и пишу

Код: Выделить всё

import os
os.system("notepad " + u"Абырвалг".encode("cp1251"))
Здесь все хорошо и отлично работает.

Захожу в "Действия" для слоя. Выбираю "Приложение Python" и пишу тоже самое один в один.
И тут ошибка:

Код: Выделить всё

При выполнении следующего кода возникла ошибка:
import os
os.system("notepad " + u"Абырвалг".encode("cp1251"))

Traceback (most recent call last):
  File "", line 2, in 
  File "C:\PROGRA~2\Quantum GIS Lisboa\apps\Python27\lib\encodings\cp1251.py", line 12, in encode
    return codecs.charmap_encode(input,errors,encoding_table)
UnicodeEncodeError: 'charmap' codec can't encode characters in position 0-2: character maps to 
Где собака зарыта?
упячка11111адинадинадин!!!!11

Аватара пользователя
Максим Дубинин
MindingMyOwnBusiness
Сообщения: 9129
Зарегистрирован: 06 окт 2003, 20:20
Репутация: 748
Ваше звание: NextGIS
Откуда: Москва
Контактная информация:

Re: Qgis + Python + Кириллица + Действия

Сообщение Максим Дубинин » 16 апр 2013, 11:15

Возможно у васпросто бардак из кучи версий:
ANAT01 писал(а):Qgis: 1.8 (NextGIS)
ANAT01 писал(а):File "C:\PROGRA~2\Quantum GIS Lisboa\apps\Python27\lib\encodings\cp1251.py", line 12, in encode
пристегивайтесь, турбулентность прямо по курсу

Аватара пользователя
ANAT01
Активный участник
Сообщения: 196
Зарегистрирован: 18 апр 2012, 14:41
Репутация: 57

Re: Qgis + Python + Кириллица + Действия

Сообщение ANAT01 » 16 апр 2013, 15:47

Максим Дубинин писал(а):Возможно у васпросто бардак из кучи версий:
Вы правы. Действительно сначала был с сайта qgis'а потом поверх поставил nextgis'овскую сборку.
Сейчас удалил старую версию через установка/удаление (папка в program files исчезла).
Также удалил C:\users\%username%\.qgis
Скачал свежую версию NextGIS-QGIS-c64bb9d-22.03.2013.exe

Ничего не поменялось :((

Код: Выделить всё

При выполнении следующего кода возникла ошибка:
import os
os.system("notepad " + u"Абырвалг".encode("cp1251"))


Traceback (most recent call last):
  File "", line 2, in 
  File "C:\NextGIS_QGIS\apps\Python27\lib\encodings\cp1251.py", line 12, in encode
    return codecs.charmap_encode(input,errors,encoding_table)
UnicodeEncodeError: 'charmap' codec can't encode characters in position 0-2: character maps to 


Версия Python:
2.7.2 (default, Jun 12 2011, 15:08:59) [MSC v.1500 32 bit (Intel)]

Версия QGIS:
1.8.0-Lisboa 'Lisboa', exported

Путь поиска Python:
['C:/NextGIS_QGIS/apps/qgis/./python', 'C:/Users/User/.qgis//python', 'C:/Users/User/.qgis//python/plugins', 'C:/NextGIS_QGIS/apps/qgis/./python/plugins', 'C:\\Windows\\system32\\python27.zip', 'C:\\NextGIS_QGIS\\apps\\Python27\\DLLs', 'C:\\NextGIS_QGIS\\apps\\Python27\\lib', 'C:\\NextGIS_QGIS\\apps\\Python27\\lib\\plat-win', 'C:\\NextGIS_QGIS\\apps\\Python27\\lib\\lib-tk', 'C:\\NextGIS_QGIS\\apps\\qgis\\bin', 'C:\\NextGIS_QGIS\\apps\\Python27', 'C:\\NextGIS_QGIS\\apps\\Python27\\lib\\site-packages', 'C:\\NextGIS_QGIS\\apps\\Python27\\lib\\site-packages\\PIL', 'C:\\NextGIS_QGIS\\apps\\Python27\\lib\\site-packages\\win32', 'C:\\NextGIS_QGIS\\apps\\Python27\\lib\\site-packages\\win32\\lib', 'C:\\NextGIS_QGIS\\apps\\Python27\\lib\\site-packages\\Pythonwin', 'C:\\NextGIS_QGIS\\apps\\Python27\\lib\\site-packages\\wx-2.8-msw-unicode', 'C:\\NextGIS_QGIS\\apps\\qgis\\python\\plugins\\fTools\\tools']
упячка11111адинадинадин!!!!11

Аватара пользователя
Максим Дубинин
MindingMyOwnBusiness
Сообщения: 9129
Зарегистрирован: 06 окт 2003, 20:20
Репутация: 748
Ваше звание: NextGIS
Откуда: Москва
Контактная информация:

Re: Qgis + Python + Кириллица + Действия

Сообщение Максим Дубинин » 16 апр 2013, 15:56

Забавно, у меня Ubuntu и 1.9

Если я делаю так:

Код: Выделить всё

os.system("gedit " + u"Абырвалг".encode("utf-8"))
то глючит кодировку

Изображение

если так:

Код: Выделить всё

os.system("gedit " + "Абырвалг")
то все окей

Изображение
пристегивайтесь, турбулентность прямо по курсу

Аватара пользователя
ANAT01
Активный участник
Сообщения: 196
Зарегистрирован: 18 апр 2012, 14:41
Репутация: 57

Re: Qgis + Python + Кириллица + Действия

Сообщение ANAT01 » 16 апр 2013, 17:52

Да я уж всяко попробовал. Бывает выдает результат, но крякозябры.
У меня познаний нет столько ни в qgis ни в python чтобы решить проблему. Интернеты тоже ничем не помогли.
Похоже придется оставить затею
упячка11111адинадинадин!!!!11

Александр Мурый
Гуру
Сообщения: 5173
Зарегистрирован: 26 сен 2009, 16:26
Репутация: 792
Ваше звание: званий не имею
Откуда: Москва

Re: Qgis + Python + Кириллица + Действия

Сообщение Александр Мурый » 16 апр 2013, 19:16

А зачем специально задавать кодировку файла CP1251? "ANSI", вроде бы, стандартная Win-кодировка при создании текстовых файлов, нет?
Редактор материалов, модератор форума

doujin
Активный участник
Сообщения: 163
Зарегистрирован: 28 июн 2012, 01:02
Репутация: 84
Откуда: Vladivostok

Re: Qgis + Python + Кириллица + Действия

Сообщение doujin » 17 апр 2013, 03:10

Попробуйте магический комментарий в начале.

Код: Выделить всё

# coding=cp1251
import os
cmd = u'notepad ' + u'Абырвалг'
os.system(cmd.encode(u'cp1251'))

P.S. Вообще, вся эта конструкция напоминает сказку, в которой игла была в яйце, яйцо в утке, утка в зайце и т.д.

Аватара пользователя
ANAT01
Активный участник
Сообщения: 196
Зарегистрирован: 18 апр 2012, 14:41
Репутация: 57

Re: Qgis + Python + Кириллица + Действия

Сообщение ANAT01 » 17 апр 2013, 05:23

doujin писал(а):Попробуйте магический комментарий в начале.
Спасибо! Действительно помогло! Только вместо cp1251 нужно использовать utf-8.
Вот рабочий пример:

Код: Выделить всё

# -*- coding: utf-8 -*-
import os
os.system('notepad ' + u'Абырвалг'.encode('cp1251'))

Всем спасибо за помощь!
упячка11111адинадинадин!!!!11

Ответить

Вернуться в «QGIS»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 5 гостей