python — Не могу поставить русский язык вывода OWM
Вопрос задан
Изменён 1 год 9 месяцев назад
Просмотрен 199 раз
Задал через конфиг здесь вывод на русском языке информации про погоду с помощью Open Weather Map. Бьюсь уже пол часа, он отказывается принимать русский язык. Через конфиг внутри такая же проблема. Ведь не может быть вывод на английском просто потому что у меня на компьютере стоит английский язык? В чем проблема?
import amino import gtts import requests import os import random from pyowm import OWM from termcolor import colored from gtts import gTTS from pyowm.utils.config import get_default_config from pyowm.utils import timestamps, formatting from threading import Thread def main(data): Thread(target=on_message, args=(data, )).start() def on_message(data: amino.objects.Event): global ban global tim global nom chatId: str = data.message.chatId nickname: str = data.message.author.nickname content: str = data.message.content messageId: str = data.message.messageId message_time: int = int(data.message.createdTime[17:19]) userId: str= data.message.author.userId if content.lower().startswith("!погода"): config_dict = get_default_config() config_dict['language'] = 'ru' owm = OWM('da1b5955f35250db10beb26ee0fd88a9', config_dict) mgr = owm.weather_manager() place = data.message.content.split("@")[1].replace("@", "")[0: 50] monitoring = owm.weather_manager().weather_at_place(place) weather = monitoring.weather status = weather.temperature('celsius') sub_client.send_message(message=(f' {status} in {place}'), chatId=data.message.chatId)
- python
- бот
- openweathermap
- weather
4
Не работает. Увы. {‘temp’: 27.12, ‘temp_max’: 27.29, ‘temp_min’: 25.52, ‘feels_like’: 28.31, ‘temp_kf’: None} in Киев
Все работает. Название города у вас приходит локализованным, а «in» вы в коде сами добавляете в последней строке:
sub_client.send_message(message=(f' {status} in {place}'), chatId=data.message.chatId)
Чтобы вместо полного словаря status
выводилась температура, нужно получить из status
значение по какому-то из ключей, пример:
sub_client.send_message(message=(f' {status["temp"]} градусов (ощущается как {status["feels_like"]}) в {place}'), chatId=data.message.chatId)
Зарегистрируйтесь или войдите
Регистрация через Facebook
Регистрация через почту
Отправить без регистрации
Почта
Необходима, но никому не показывается
Отправить без регистрации
Почта
Необходима, но никому не показывается
Нажимая на кнопку «Отправить ответ», вы соглашаетесь с нашими пользовательским соглашением, политикой конфиденциальности и политикой о куки
node.
js — Консоль Sublime Text 3В обзоре могут содержаться субъективные суждения, основанные на опыте работы с плагинами для Sublime Text.
Протестировано на
- Windows 32-bit 10.0.14393,
- Отключён контроль учётных записей,
- Sublime Text Build 3126.
Вообще в Sublime Text по моему вероятностному суждению примерно треть плагинов совсем не работают после установки. Но расписанные в обзоре лично у меня функционируют, что доказывается скринкастами.
По причине того, что использую Windows, не рассмотрены такие решения, как Tint и fish-shell. Если не упомянул что-то ещё, можете добавить.
Терминология
В данном обзоре встроенная консоль Windows называется «консолью» или «внешней консолью» в зависимости от контекста. Согласно автору программы ConEmu называть её cmd.exe
не совсем корректно:
В Windows есть встроенный терминал (или “консольное окно”) которое часто ошибочно называют “cmd.
exe”. Нажмите Win+R и запустите, например, “powershell.exe”. Среди запущенных процессов не будет “cmd.exe”. В разных версиях Windows консольное окно создают разные процессы, в актуальных – это “conhost.exe”. Не ‘cmd.exe’, а просто ‘консоль’!
1. SublimePTY
Страница плагина. Разработка давно прекращена.
Для Sublime Text пишут плагины, облегчающие запуск только отдельных команд только для определённых инструментов программирования. Например, команды Git проще запускать с помощью плагинов Git, SideBar Git и Easygit (Не загружайте Easygit через Package Control, он не будет работать! Установите плагин вручную по ссылке). Так как в вопросе указана метка Node.js
, приведу в пример плагин npm
.
1. npm
Плагин, благодаря которому можно запускать многие команды npm — пакетного менеджера Node. js.
1. Демонстрация
2. Недостатки
- Баги. Не запускается ряд команд.
Общая оценка
Все решения хорошие, пользуюсь ими, но полностью внешние терминалы они не заменяют.
1. Glue
1. Оценка
Использую иногда.
2. Демонстрация
3. Установка и настройка
Скачиваем плагин через Package Control →
- В открытом файле проекта Ctrl+Shift+P →
Glue - Launch
. - Или же кликаете правой кнопкой мыши по папке в сайдбаре, в выпадающем меню выбираете
Open Glue Terminal
.
Откроется quick panel, куда следует вводить команды:
Появится файл terminal.glue
. Без него никак, если мешает, можете добавить расширение glue в .gitignore
, .hgignore
или другой файл, который используется для игнорирования директорий/файлов в Вашей системе контроля версий.
Чтобы в выводе была хоть какая-то подсветка, скачиваем плагин PowerShell → настраиваем для расширения glue
синтаксис PowerShell.
4. Достоинства
- Не нужно выходить из Sublime Text, чтобы запускать команды,
- Достаточно многофункциональный плагин,
- Удобнее осуществлять навигацию по output, если тот большой, во вкладке, нежели в консоли.
5. Недостатки
- Разработка прекращена, шанс, что ответят на Ваш багрепорт, минимален,
- А багов, которые не воспроизводятся в других терминалах, достаточно. Так, не рекомендовал бы пушить изменения Git через Glue.
- Лимиты. Cash в Glue не запустишь.
6. Дополнительные ссылки
- Обзор Glue
, - Собственные команды Glue,
- Инструкция по созданию и использованию алиасов в Glue.
2. SublimeREPL
Позволяет запускать REPL консоль для многих языков программирования во вкладке Sublime Text. В примере этого ответа написано, как настроить SublimeREPL для PowerShell.
1. Оценка
Пользуюсь часто, но иногда вынужден прибегать к другим терминалам.
2. Демонстрация
3. Установка и настройка
Помимо самого SublimeREPL устанавливаем также плагины Suricate и PowerShell для настройки команды SublimeREPL и подсветки синтаксиса соответственно. Инструкция по настройке команд в Suricate.
Ctrl+Shift+P → SublimeREPL: PowerShell
→ если у Вас русская версия операционной системы, может вылезти всплывающее окно с примерно следующей ошибкой:
error: UnicodeDecodeError('utf-8', b'C:\\Users\\\x8a\xae\xe2', 9, 10, 'invalid start byte')
В таком случае перейдите в файл Default.suricate-profile
(как — см. инструкцию, всё, что в ней есть, я буду опускать в данном ответе) → и вставьте следующий json-массив. Не путайтесь в JSON-синтаксисе, следите за правильной расстановкой кавычек, скобок и запятых.
// SublimeREPL PowerShell "sublime_repl_powershell": { "caption": "SublimeREPL: PowerShell", "keys": ["super+alt+p"], "call": "sublime.repl_open", "args": { "type": "powershell", "encoding": "utf8", "cmd": ["powershell", "-"], "cwd": "$file_path", "external_id": "powershell", "syntax": "Packages/PowerShell/Support/PowerShellSyntax.tmLanguage" } },
4. Параметры аргументов
type
— тип. Означает, что во вкладке запустится консоль PowerShell, а не какая-либо другая вроде Python или Node.encoding
— кодировка.cmd
— запускаем PowerShell в консоли Windows.cwd
— указываем системную переменную.$file_path
означает, что SublimeREPL PowerShell запустится в папке файла, находясь в котором мы запустили SublimeREPL PowerShell.external_id
—- Во-первых, данным параметром определяется, как будет называться вкладка с PowerShell. Если оставить параметру пустое значение,
"external_id": ""
, то во вкладке будет указан полный путь к файлуpowershell.exe
:
Мы назвали вкладкуpowershell
, но можно по-любому. Если подставите значениеsashatriumph
, ничего не должно поломаться: - Во-вторых, значение параметра
external_id
является именем файла, где хранится история команд, когда-либо вводимых Вами в SublimeREPL PowerShell. Файл c расширением.db
располагается по путиPackages/User/.SublimeREPLHistory
.
- Во-первых, данным параметром определяется, как будет называться вкладка с PowerShell. Если оставить параметру пустое значение,
syntax
— относительный путь к файлу синтаксиса для подсветки вкладки SublimeREPL PowerShell, начиная с Packages.
5. Достоинства
- Не нужно выходить из Sublime Text, чтобы запускать команды,
- Удобнее осуществлять навигацию по output, если тот большой, во вкладке, нежели в консоли.
- Особенно нравится, что запоминаются все команды, которые когда-либо вводили.
6. Недостатки
- Кодировки. Если приходится работать не только с английскими символами, ещё замучаетесь бороться с багами.
- Разработка прекращена, шанс, что ответят на Ваш багрепорт, минимален,
- Не всё, что работает в PowerShell, работает в SublimeREPL PowerShell. Например, Cash в Glue не запустишь. SublimeREPL PowerShell не получится заменить терминал полноценно.
7. Дополнительная ссылка
- Документация SublimeREPL.
3. Terminality
В примере показан вывод для Python, но можно использовать как консоль и для других языков программирования, включая отсутствующие по умолчанию в плагине.
1. Оценка
Использую для обучения Python и PHP.
2. Демонстрация
3. Установка и настройка
Загружаем плагин через Package Control → открываем файл hangman.py
, вывод из которого собираемся осуществить, → Ctrl+Shift+P → Terminality: Browse Commands. ..
→ Run hangman.py — <sub><sup>Run hangman.py as Python 2.7 document</sup></sub>
→ видим результат в новой вкладке, включая время, потраченное на компиляцию, в сантисекундах. Обратите внимание, что пунктом меню Run hangman.py as Python3
запускается команда python3
, при выборе Run hangman.py
— команда python
. Даже когда у Вас установлен Python 3, а не Python 2, если исполняемый файл Python называется python.exe
, а не python3.exe
, выбирайте Run hangman.py — <sub><sup>Run hangman.py as Python 2.7 document</sup></sub>
.
4. Достоинства
- Не нужно выходить из Sublime Text, чтобы запускать команды,
- Удобнее осуществлять навигацию по output, если тот большой, во вкладке, нежели в консоли.
- Активно поддерживается разработчиками.
5. Недостатки
- Некоторые баги, которые не воспроизводятся во внешних терминалах. «Although Terminality can run many commands, it is not gurranteed that it can be used for all commands».
6. Дополнительные ссылки
- Репозиторий плагина, где описываются его возможности,
- Инструкция по настройке Terminality для не настроенных в плагине нативно языков программирования на примере PHP.
Достоинства и недостатки относятся уже к вызываемым в Sublime Text терминалам, а не самому Sublime Text.
1. Консоль/GNOME Terminal
1. Установка и настройка
Устанавливаем плагин Suricate. Ctrl+Shift+P → Suricate: Open Terminal Here...
→ откроется новое окно с консолью для Windows и GNOME Terminal для Linux соответственно в директории с тем файлом, который был у Вас открыт, когда запускали терминал.
2. Параметры и их значения
Как выглядит конфигурационный файл Suricate:
// Open terminal. "open_terminal_here": { "call": "Suricate. lib.process.spawn", "caption": "Open Terminal Here...", "flags": "Windows|Linux", "args.windows": {"cmd": ["start", "cmd.exe"], "working_dir": "${file_path}"}, "args.linux": {"cmd": ["gnome-terminal"], "working_dir": "${file_path}"}, },
(В оригинальном массиве также есть параметры/значения "group": "launch"
, |IsFile
, "context_menu": true
, каковые я опустил в силу того, что считаю их излишними.)
flags
— параметр, при помощи которого можно задать различные аргументы для операционных систем или систем управления версиями.args.windows
иargs.linux
— параметры запуска терминалов Windows и Linux.
Дополнительная ссылка
- См. данный ответ и ссылки в его конце
2. Запуск любого предпочтительного терминала
Для примера возьмём, как запустить Git Bash из Sublime Text.
1. Установка и настройка
Устанавливаем плагин Suricate → в файл Default. suricate-profile
добавляем следующий код:
// Запустить Git Bash "git-bash": { "call": "Suricate.lib.process.spawn", "args.windows": { "cmd": ["C:\\Program Files\\Git\\git-bash.exe"], "working_dir": "${file_path}" }, "caption": "Git Bash", "keys": ["<c>+super+keypad3"], },
Ctrl+Shift+P → Suricate: Git Bash
→ должен открыться Git Bash в директории с тем файлом, который был у Вас открыт, когда запускали Git Bash из Sublime Text.
2. Дополнительная ссылка
- См. данный ответ и ссылки в его конце
3. Плагин Terminal
1. Описание
Кроссплатформенный плагин, позволяющий открывать из Sublime Text любой терминал, который лично Вы считаете наиболее предпочтительным. В Windows по умолчанию запускается PowerShell. После установки плагина доступны 3 варианта запуска:
- Из command palette,
- Из контекстного меню сайдбара,
- Шорткатом. Многим пользователям не нравится, что задействуется сочетание, по умолчанию используемое для переоткрытия последней закрытой вкладки, можете перезаписать шорткат в файле пользовательского кеймапа.
Вызываются две команды:
open_terminal
— открывает терминал в папке, где лежит файл, вкладка с которым была открыта, когда запускали терминал.open_terminal_project_folder
— возможно, работает некорректно. Актуальное поведение:- Если Вы запустили команду, из файла, который находится в верхней папке Вашего сайдбара или её подпапках, терминал запустится в этой верхней папке. Например, мой сайдбар:
Когда я запускаюopen_terminal_project_folder
, например, из файлаE:\Киролайна\SashaFolder\SashaFile.txt
, терминал откроется вE:\Киролайна
. - Но когда Вы запускаете команду из файла, не имеющего отношения к верхней папке Вашего сайдбара — в моём случае
E:\Киролайна
, — поведение командыopen_terminal_project_folder
аналогично поведениюopen_terminal
.
- Если Вы запустили команду, из файла, который находится в верхней папке Вашего сайдбара или её подпапках, терминал запустится в этой верхней папке. Например, мой сайдбар:
2. Настройка
Вы можете указывать параметры запуска Вашего терминала. Положим, хотите всегда запускать консольный эмулятор cmder только из директории E:\SashaSublime.
Для упрощения работы с настройками Sublime Text скачиваем плагин Preferences Editor. Ctrl+Shift+P → Edit Preferences: Edit Settings...
→ Terminal
→ terminal
→ в открывшуюся quick panel вставляете путь к исполняемому файлу cmder.exe вместе с именем файла, например, E:\Chocolatey\tools\cmder\Cmder.exe
→ Enter. Далее Ctrl+Shift+P → Edit Preferences: Edit Settings...
→ Terminal
→ parameters
→ между квадратными скобками вставляем "/START", "E:\\SashaSublime"
→ Enter. Обратите внимание, что если значения заключены в [квадратные скобки], необходимо экранировать слэши: E:\Chocolatey\tools\cmder\Cmder.exe
, но E:\\SashaSublime
.
Теперь после запуска любой из команд — open_terminal
либо open_terminal_project_folder
должен открыться Cmder.exe
в папке E:\SashaSublime
.
Также предусмотрена возможность одним шорткатом запускать один терминал со своими параметрами, вторым хоткеем запускать другой терминал с другими параметрами и т. д. Читаем здесь.
3. Дополнительные ссылки
- Краткое описание плагина Terminal в книге «Sublime Text Power User»,
- Репозиторий плагина на GitHub
4. ConEmu
Для лучшей, по мнению пользователей англоязычного Stack Overflow, консоли для Windows есть свой плагин. См. также плагин для Cmder — немного изменённого ConEmu.
1. Описание
По умолчанию осуществляется запуск PowerShell в оболочке ConEmu. Как и в плагине Terminal, ConEmu можно запустить из command palette, контекстного меню сайдбара или шорткатом.
open_conemu_here
— открывает ConEmu в папке, где лежит файл, вкладка с которым была открыта, когда запускали ConEmu.open_conemu_project
— возможно, работает некорректно. Всегда открывает ConEmu в верхней папке сайдбара, в моём случае (см. п. 3.3) этоE:\Киролайна
.
2. Недостатки
- Разработчик перешёл на MacOS, плагин больше не поддерживается.
- Баги. я пофиксил, что нашёл, но далеко не факт, что их больше не осталось.
3. Дополнительные ссылки
- Альтернативный терминал для Windows — статья на Хабрахабре,
- Официальный сайт ConEmu,
- Документация ConEmu.
1. Console Exec
1. Оценка
Пользуюсь вместо дефолтных Build System.
2. Описание
Плагин выводит результаты Build System во внешнюю консоль, а не встроенную Sublime Text. Это может понадобиться по ряду причин.
- Если после вывода требуется вводить что-то ещё в консоль , — дефолтным механизмом Build System без дополнительных надстроек не обойтись. Установив же Console Exec и добавив в файл Build System всего одну дополнительную строку, Вы можете и дальше вводить команды.
- Если пользуетесь плагином Build Next, когда в выводе нет ошибок, встроенная панель Build System автоматически закрывается. Использование внешней панели средствами Console Exec избавляет от данной проблемы.
- Встроенная панель не поддерживает некоторые средства программирования как Pyglet.
- В панели Build System неудобна навигация. Увеличишь панель Build System — не будет видно содержимого вкладок, уменьшишь — вывода в панель.
- Выводя результаты во внешнюю консоль, при закрытии Sublime Text внешняя консоль остаётся открытой — дополнительное удобство.
3. Демонстрация
4.
[ ]*File \»(…*?)\», line ([0-9]*)», «selector»: «source.python», «target»: «console_exec» }Как создавать и настроить автоматический выбор Build System, подробно рассмотрено по дополнительным ссылкам.
Во вкладке со скриптом на Python Ctrl+Shift+P → Build With: SashaPythonExec
→ смотрим результат.
5. Дополнительные ссылки
- Документация по использованию Build System в Sublime Text,
- Описание Build System в книге «Sublime Text Power User»,
- Некоторые готовые Build System для компьютерных языков и инструментов программирования,
- Настройка автоматического выбора Build System.
2. Send to Shell
В Sublime Text существуют плагины, отправляющие во внешний терминал выделенный или скопированный текст, как SendText и SendREPL. Тот же принцип действия у плагина Send to Shell, отправляющего скопированный текст в IPython — интерактивную оболочку для Python, составляющую Jupyter.
1. Демонстрация
2. Установка
Как настроить плагин для отправки скопированного текста на ConEmu в режиме PowerShell.
- Скачиваем и устанавливаем последнюю версию Python, если Python ещё не установлен в системе.
- Устанавливаем Jupyter, проще всего, запустив в терминале команду
pip install jupyter
. - Устанавливаем через Package Control PyWin32 — набор расширений Python для доступа ко многим функциям Windows API.
- Устанавливаем через Package Control плагин Preferences Editor для упрощения работы с файлами настроек Sublime Text.
- Устанавливаем через Package Control плагин Send to Shell.
3. Настройка
Задаём системную переменную PATH, указав в качестве значения путь к файлу ConEmu.exe
, для меня это C:\Program Files\ConEmu
.
Запускаем ConEmu → Super+Alt+P → Startup
→ задаём параметру Specifed named task
значение {Shells::PowerShell}
:
В Sublime Text 3 Ctrl+Shift+P → Edit Preferences: Edit <kbd>Settings. ..
→ SendToShell
→ powershell_startup
→ в открывшееся поле вместо powershell
вписываем conemu
. Ctrl+Shift+P → Edit Preferences: Edit Settings...
→ SendToShell
→ window_title
→ в открывшееся поле вместо Windows PowerShell
вписываем заголовок вкладки ConEmu: у меня это powershell (Admin)
.
Опционально предлагаю установить плагин CopyOnSelect, — пусть по первому времени он вызвать неудобства, — копирующий в буфер обмена выделенный текст. Задержка между выделением текста и его копированием в данном плагине составляет секунду, и автор не рекомендует её сильно уменьшать из-за возможных проблем с работой Clipboard-менеджеров.
Настройка окончена. Выделяем кусок скрипта на Python для отправки в ConEmu → копируем его (а с плагином CopyOnSelect достаточно только выделить) → запускаем команду sendtoshell {"how": "paste_selection"},
— по умолчанию сочетанием клавиш Ctrl+Shift+Enter, — в ConEmu пишем команду ipython
, а затем %paste
. Можно было, конечно, написать плагин так, чтобы пользователь совершал поменьше действий.
4. Недостатки
- Баги в установке связи плагина с терминалом.
5. Дополнительные ссылки
- Оболочка IPython как инструмент системного администратора (python freebsd shell),
- IPython: замена стандартного Python shell.
Если описанные в обзоре плагины не удовлетворяют Вашим задачам, помимо обычного поиска в Google порекомендовал бы осуществить поиск примерно по следующим ключевым словам и меткам на сайте Package Control:
- terminal,
- build system,
- console,
- repl,
- shell.
sublimetext2 — Проверка орфографии на нескольких языках в Sublime Text 3
спросил
Изменено 3 года, 10 месяцев назад
Просмотрено 2к раз
У меня два словаря: ru_RU и en_US. Как я могу использовать его вместе в проверке орфографии Sublime Text 3? Является ли это возможным?
- sublimetext2
- sublimetext3
- sublimetext
- sublime-text-plugin
В настоящее время это невозможно. Это было упомянуто в официальном списке проблем для ST3 — подробности см. в этом выпуске.
У меня это работает, используя эти шаги.
Загрузите свой словарь (например, с GitHub или по рецепту README.md в этом репозитории).
Создайте папку в конфигурации Sublime Text 3 (например, «Язык — испанский»), это будет имя, отображаемое в меню ST, и переместите словарь в эту папку.
~/.config/sublime-text-3/Пакеты/Язык — испанский
Убедитесь, что проверка орфографии и словари активны в ваших настройках предпочтений:
«spell_check»: правда, «словарь»: [ «Пакеты/язык — английский/en_US.dic», «Пакеты/язык — испанский/испанский.dic» ],
Теперь можно переключить текущую проверку орфографии:
Вид > Словарь > Язык — испанский > Испанский
Для меня было решено по этой инструкции: https://www. sublimetext.com/docs/3/spell_checking.html
Я загрузил файлы dict
из:
https://github.com/SublimeText/Dictionaries
Затем я просто копирую файлы словаря в кодировке UTF-8 (в моем случае испанский
) в Packages/Language - Spanish/
(вы можете получить к нему доступ из Preferences/ Просмотр пакетов
).
Затем активируйте, добавив эту строку в настройки пользователя
"spell_check": правда,
Или через меню Просмотр/Проверка орфографии
.
Словарь можно выбрать в меню View/Dictionary
.
Было бы непросто создать аффикс для «объединенного» языка, например, 2 диктора, работающих одновременно. В моем случае мне бы хотелось, чтобы Spanglish
dict… пришлось над этим поработать.
Зарегистрируйтесь или войдите в систему
Зарегистрируйтесь с помощью Google
Зарегистрироваться через Facebook
Зарегистрируйтесь, используя электронную почту и пароль
Опубликовать как гость
Электронная почта
Требуется, но никогда не отображается
Опубликовать как гость
Электронная почта
Требуется, но не отображается
html.
Есть ли способ в Sublime text 3 автоматически добавлять формат языка после выбора его из синтаксиса?спросил
Изменено 1 год, 5 месяцев назад
Просмотрено 237 раз
Ищу способ для Sublime Text добавить «нужный» формат в редактор после выбора языка из выпадающего меню синтаксиса.
Например:
После выбора HTML я хочу, чтобы редактор сразу добавил, например,
, и так далее, и тому подобное.
Есть ли способ сделать это или мне нужно загрузить/добавить определенные плагины?
- HTML
- синтаксис
- формат
- sublimetext3
Плагин emmet может выполнять свою работу.
2
Это возможно с помощью простого плагина. Вы можете прослушать, когда синтаксис изменится на HTML, проверить, что файл в противном случае пуст, и если это так, вставьте фрагмент HTML.
- Меню Сервис -> Разработчик -> Новый плагин…
- Замените шаблон следующим кодом:
импортное возвышенное импортировать возвышенный_плагин класс SyntaxChangeListener (sublime_plugin.EventListener): def on_post_text_command(self, view, command_name, args): если view.size() > 0: возвращаться если имя_команды == 'set_file_type': if args['syntax'] == 'Packages/HTML/HTML.sublime-syntax': view.run_command('insert_snippet', {'name': 'Packages/HTML/Snippets/html.sublime-snippet'})
- Сохраните его в папке, которую рекомендует ST (
Packages/User
) как что-то вродеinsert_html_snippet_for_new_files.py
— само имя не имеет значения, главное, чтобы расширение файла былоpy
. - Открыть новую вкладку
- Установить синтаксис HTML
- См.