Форум сайта python.su
Не могу прописать локаль в командной строке:
А как?
в программе, оно конечно locale.setlocale(locale.LC_ALL,….) пропишу, а тут-то как?
(Lubuntu 18, LXTerminal, py 3.6.6)
=========
win7 x64:
C:\Python37-64>py -m calendar 2019 1 -L “german”
usage: calendar.py
calendar.py: error: if –locale is specified –encoding is required
C:\Python37-64>py -m calendar 2019 1
January 2019
Mo Tu We Th Fr Sa Su
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
Отредактировано Koala (Янв. 5, 2019 15:55:37)
Офлайн
Ну начните с того что покатите свой calendar.py
принимает ли он вообще локаль на вход?
Офлайн
> Ну начните с того что покатите свой calendar.py
Он вызывает стандартный модуль.
> Не могу прописать локаль в командной строке
rodegast@rodegast:~$ python -m calendar -L "ru" -e "UTF-8" 2019 1 Январь 2019 Пн Вт Ср Чт Пт Сб Вс 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
Отредактировано Rodegast (Янв. 7, 2019 18:52:34)
Офлайн
да, прикол именно вызвать стандартный модуль из командной строки с нужной локалью. Просто из файла “как программа” все ОК!
Офлайн
да, прикол именно вызвать стандартный модуль из командной строки с нужной локалью. Просто из файла “как программа” все ОК!
rodegast@rodegast:~$ python -m calendar -L “ru” -e “UTF-8” 2019 1
Январь 2019
Пн Вт Ср Чт Пт Сб Вс
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
Премного-премного благодарен. Этого то я и хотел.
Работает. Но под Linux.
А под Win - нет, к сожалению.
I:\[Alex(progress)dict]>python -m calendar -L "ru" -e "1251" 2019 1 Traceback (most recent call last): File "C:\Python36\lib\runpy.py", line 193, in _run_module_as_main "__main__", mod_spec) File "C:\Python36\lib\runpy.py", line 85, in _run_code exec(code, run_globals) File "C:\Python36\lib\calendar.py", line 713, in <module> main(sys.argv) File "C:\Python36\lib\calendar.py", line 704, in main result = cal.formatmonth(options.year, options.month, **optdict) File "C:\Python36\lib\calendar.py", line 325, in formatmonth s = self.formatmonthname(theyear, themonth, 7 * (w + 1) - 1) File "C:\Python36\lib\calendar.py", line 525, in formatmonthname with different_locale(self.locale): File "C:\Python36\lib\calendar.py", line 495, in __enter__ _locale.setlocale(_locale.LC_TIME, self.locale) File "C:\Python36\lib\locale.py", line 598, in setlocale return _setlocale(category, locale) locale.Error: unsupported locale setting
J:\...hings.S01E16.720p.WEB.x264-TBS[rarbg]>python -m calendar -L "ru" -e "UTF-8" 2019 1 Traceback (most recent call last): File "C:\Python36\lib\runpy.py", line 193, in _run_module_as_main "__main__", mod_spec) File "C:\Python36\lib\runpy.py", line 85, in _run_code exec(code, run_globals) File "C:\Python36\lib\calendar.py", line 713, in <module> main(sys.argv) File "C:\Python36\lib\calendar.py", line 704, in main result = cal.formatmonth(options.year, options.month, **optdict) File "C:\Python36\lib\calendar.py", line 325, in formatmonth s = self.formatmonthname(theyear, themonth, 7 * (w + 1) - 1) File "C:\Python36\lib\calendar.py", line 525, in formatmonthname with different_locale(self.locale): File "C:\Python36\lib\calendar.py", line 495, in __enter__ _locale.setlocale(_locale.LC_TIME, self.locale) File "C:\Python36\lib\locale.py", line 598, in setlocale return _setlocale(category, locale) locale.Error: unsupported locale setting
I:\[Alex(progress)dict]>python -m calendar -L "deutsch" -e "1251" 2019 1 Traceback (most recent call last): File "C:\Python36\lib\runpy.py", line 193, in _run_module_as_main "__main__", mod_spec) File "C:\Python36\lib\runpy.py", line 85, in _run_code exec(code, run_globals) File "C:\Python36\lib\calendar.py", line 713, in <module> main(sys.argv) File "C:\Python36\lib\calendar.py", line 704, in main result = cal.formatmonth(options.year, options.month, **optdict) File "C:\Python36\lib\calendar.py", line 325, in formatmonth s = self.formatmonthname(theyear, themonth, 7 * (w + 1) - 1) File "C:\Python36\lib\calendar.py", line 525, in formatmonthname with different_locale(self.locale): File "C:\Python36\lib\calendar.py", line 495, in __enter__ _locale.setlocale(_locale.LC_TIME, self.locale) File "C:\Python36\lib\locale.py", line 598, in setlocale return _setlocale(category, locale) locale.Error: unsupported locale setting
python -m calendar -L "rus" -e "1251" 2019 1 python -m calendar -L "russian" -e "1251" 2019 1 python -m calendar -L "Russian" -e "1251" 2019 1 python -m calendar -L "Russian_Russia" -e "1251" 2019 1 python -m calendar -L "deutsch" -e "1251" 2019 1 python -m calendar -L "ru" -e "1251" 2019 1 python -m calendar -L "ru" -e "UTF-8" 2019 1 py -m calendar -L "ru" -e "UTF-8" 2019 1 py -m calendar -L "ru" -e "UTF-8" 2019 python -m calendar -L "deutsch" -e "UTF8" 2019 1 python -m calendar -L "deutsch" -e "UTF-8" 2019 1 python -m calendar -L "deutsch" -e "1251" 2019 1 python -m calendar -L "deutsch" -e "cp1251" 2019 1 python -m calendar -L "deutsch" -e "win1251" 2019 1 python -m calendar -L "deutsch" -e "866" 2019 1 python -m calendar -L "deutsch" -e "cp866" 2019 1
Отредактировано Koala (Янв. 8, 2019 16:18:41)
Офлайн
KoalaУ меня на Маке так получилось:
Работает. Но под Linux.
А под Win - нет, к сожалению.
python -m calendar -L "ru_RU.UTF-8" -e "UTF-8" 2019 1
Отредактировано rami (Янв. 8, 2019 17:50:14)
Офлайн
смотри:
>>> import locale >>> locale.getdefaultlocale() ('ru_RU', 'UTF-8')
Офлайн
Так тоже получается:
python -m calendar -L "ru_RU" -e "UTF-8" 2019 1
Офлайн
На маке и на линуксе разумеется что так будет работать!
На виндеразумеется нет.
меняйте код.
Самый разумный вариант ето в вашем скрипте проверять тип ОС
Брать тип ОС и проверять локаль по умолчанию.
Подставлять ее в выводе без доп значений в командной строке.
Офлайн