Здравейте! Сложих си Sublime Text 2 и имам малък проблем - не ми зачита кирилицата, дава ми грешка свързана с utf-8. Ако сменя кирилицата с латиница грешката изчезва. Искам да попитам как да отстраня този проблем? Мерси предварително :)
Проблем със Sublime
В Sublime Text цъкаш горе Preferences/Browse packages, избираш Python и отваряш файла Python.sublime-build. Предполагам си с Windows, следователно добавяш накрая "encoding": "cp1251". Ето ти примерна снимка: http://postimage.org/image/68xbgv5sd/
А ето тук има всички кодирания: http://docs.python.org/2/library/codecs.html#standard-encodings
cp1251!? Този енкодинг не го ли забраниха със закон вече?
Ния, направи си encoding-а да е utf8. Не използвам Sublime, но подозирам, че ако гърми ти изпълнява/проверява кода с Python 2.x. Укажи му изрично да е с Python 3.x и би следвало да се оправи.
Мартине, даваш линкове към документацията на Python 2.x.
Навярно ползваш sublime-text 2. Това което горе Кирил е написал за utf8 си го направи да, но както и става ясно от коментара му не е пряко свързано с твоя проблем (предполагам).
Когато build-ваш .py файл в sublime (ctrl+b) става така, че sublime-text 2, build-ва наистина с Python 2.x. Трябва да направиш така, че да buld-ваш с Python 3.x
Това което аз съм направил е:
Отиваш на Tools -> Build System и там предполагам ти е на Automatic. Дай New Build System и напиши следното:
{ "cmd": ["[ТУК-ТУК]", "-u", "$file"], "file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)", "selector": "source.python" }
Където [ТУК-ТУК] го заместваш с командата в която от терминала/cmd-то отваряш python3.3. И save-аш там в директория, в която ще ти даде да save-аш.
След това селектираш от Tools -> Build System -> новосъздадената от теб. И всичко трябва да потръгне.
П.П. Иначе ако решиш да пишеш на друг език в Sublime след това, гледай да не забравиш да си смениш обратно на Automatic.
За форматиране спрямо PEP8:
Preferences > Package Control > Install package > AutoPep8
Клавишните комбинации си ги нагласяте от:
Preferences > Package Settings > AutoPep8 > Key Bindings
Енкодинга там наистина трябва да е cp1251. При build върху windows явно python изкарва stdout нещата в друг енкодинг (не utf-8). За това като пусна build-a с CTRL+B и там където има кирилица пише "[Decode error - output not utf-8]". Като му се каже да чете в cp1251 работи.
Версията при мен е 3.3 и нямам друга, с която да се опитва да го билдва. (Изхода от print(sys.version) e "3.3.0 (v3.3.0:bd8afb90ebf2, Sep 29 2012, 10:55:48) [MSC v.1600 32 bit (Intel)]")
Георги, Sublime идва с bundle-нат python 2.6. Така ще е до излизането на Sublime 3, който е все още в бета.
Ако решението с cp1251 ви върши работа, ползвайте го. Но много внимавайте с каква версия реално билдва. Всичко различно от 3.3.x не ви устройва.
Успях да оправя проблема, мерси много за помощта на всички! :)
Явно Sublime набира популярност из дебрите на курса. На последното събиране ви казахме колко важно е да станете нинджи с кадърен редактор. За тези, които са избрали Sublime, един полезен линк, който ще им помогне да го мастърнат по-бързо:
https://tutsplus.com/course/improve-workflow-in-sublime-text-2/
Не съм на мнение, че трябва да се затормозяват хората да изучават нови редактори. Т.е. хубаво е да работят на кадърен редактор, но на който им е удобен. Аз лично мога да използвам vim, който наистина е много добър, но предпочитам gedit.
Всъщност не знам, сигурно сте прави ... аз не оспорвам вашето мнение. Но все пак, мисля че всеки може да ползва това което му е удобно.
Колкото до sublime ... Някой ще ми каже ли как мога да run-на текущия файл и да се отвори shell в който да си тествам кода ... без да пиша безумни принтове. Т.е. ако save-на и отварям през терминал пиша "python3 -i test.py" ... Та има ли как същото да стане, само че без да отварям терминал, а директно през sublime
може би ако използваш SublimeREPL ще се получи
А как извинявай?
Ако правилно разбирам въпроса ти, отваряш Shell-a и отиваш на: File -> Open и си отваряш .py файла, отваря се нов прозорец, където се показва кода ти, след това му даваш Run и то се изпълнява в Shell-a. :)
По-скоро не си разбрала правилно въпроса :) Но благодаря
Съжалявам, че не дадох по-подробно описание за SublimeREPL! :) Значи, първо трябва да си инсталираш Package Control, ако го нямаш, което става по следния начин:
1) отваряш Sublime и докато си там натискаш ctrl и ` и някъде долу в редактора ти се отваря една конзола
2) там копираш следното:
import urllib2,os; pf='Package Control.sublime-package'; ipp=sublime.installed_packages_path(); os.makedirs(ipp) if not os.path.exists(ipp) else None; urllib2.install_opener(urllib2.build_opener(urllib2.ProxyHandler())); open(os.path.join(ipp,pf),'wb').write(urllib2.urlopen('http://sublime.wbond.net/'+pf.replace(' ','%20')).read()); print('Please restart Sublime Text to finish installation')
което ще ти инсталира Package Controll
3) след това в preferences от менютата ще ти се появи package controll
4)от там избираш install package и SublimeREPL
5)после можеш да си стартираш SublimeREPL от Tools->SublimeREPL->Python
6) oтваря ти се нов прозорец, който ти стартира конзолата и за да си преместиш там твоя код Tools->SublimeREPL->Transfer to REPL
7) ако вместо Transfer to REPL му дадеш Eval in REPL просто ще има ефекта на print-овете и ще ти изпълни main-a, което по-лесно може да стане само при натискане на ctrl+b
Благодаря :)
Трябва да сте влезли в системата, за да може да отговаряте на теми.