Tag Archives: Конспекти - Page 2

Python на Windows 7 (і можливо інших версіях)

Тут трішки розповім про установку і налаштування Python під цю досить поширену систему, може аудиторія мого блогу і користувачів моїх скриптів трішки розшириться. Ну й аби запам’ятати до наступного разу, хто зна, може ще колись знадобиться. Про cygwin не розповідатиму, там все занадто просто для мене, і напевне надто складно для тих хто ще не пройшов курс “Shell-fu” на Memrise.

Перше що потрібно знати – на системі якої розрядності ми сидимо. Для цього натискаємо меню пуск, знаходимо пункт “Computer”, правий клік в контекстне меню, вибираємо пункт “Properties”. Або контекстне меню каталогу “Computer” де б ви його не знайшли. Відкривається вікно з адресою "Control Panel\All Control Panel Items\System". Також можна цю адресу в провіднику ввести. Якщо в цьому вікні написано:

System type: 64 bit Operating System

Значить ми 64 розрядні. В 32-розрядних певне буде написано про те що вона 32 розрядна.

Далі на офіційному сайті знаходимо файлик “Python 3.3.2 Windows X86-64 MSI Installer” (чи яка там версія для вас більше підходить), качаємо, запускаємо. З цього місця можете перервати читання цієї інструкції і поринути в Python 3 на один розділ. Після того повертайтесь сюди, то ще не все.

Далі нам потрібно перейти в командну оболонку. Натискаємо Win+R, в вікні що виринає набираємо cmd і натискаємо Enter. Запуститься огидний термінал який використовує кодову сторінку 866. І це на хваленому Windows 7! Але ми цю проблему відкладемо на потім, спершу перевіримо чи python запускається. Пишемо команду “python”, і якщо все ок, то ми повинні побачити таке привітання:

python_in_windows

Якщо ні – доведеться редагувати $PATH. Та навіть якщо й все ок, його все одно доведеться редагувати. Тому знову переходимо в провіднику за адресою "Control Panel\All Control Panel Items\System". Там десь зліва натискаємо “Advanced system settings”. Вискочить вікно:

advanced_system_settings

В вікні натискаємо кнопку “Environment Variables”, в таблиці “System variables” знаходимо змінну Path, та переконуємось в тому що десь в ній є підрядок “C:\Python33\;C:\Python33\Scripts;“. Не обов’язково буквально такий, але він повинен містити шлях до каталогу в якому міститься файл python.exe тої версії яку ви встановили. Якщо в тому каталозі нема підкаталогу Scripts – не переживаємо, скоро буде.

Далі скачуємо скрипт для встановлення distribute. Запускаємо його:

python distribute_setup.py

Якщо все ок, то коли ми наберемо easy_install, то побачимо таке:

C:\Users\tbunyk>easy_install
error: No urls, filenames, or requirements specified (see --help)

Якщо каже що не знає easy_install, хоча запуск distribute_setup.py був успішнм, і C:\Python33\Scripts\pip.exe присутній – значить ви забули додати каталог Scripts в змінну середовища Path.

Тільки от використання easy_install вже давно не схвалюється, тому його використовують як і IE – лише один раз:

easy_install pip

Далі нарешті ви можете встановити мою улюблену програмку:

pip install bwikibot

В мене при інсталяції виникали страшнющі помилки:

 Downloading from URL https://pypi.python.org/packages/source/m/mwparserfromhell/mwparserfromhell-0.1.1.tar.gz#md5=5fb2c8b992bce12c6a1c31e5158b6662 (from https://pypi.python.org/simple/mwparserfromhell/)
Exception:
Traceback (most recent call last):
  File "C:\Python33\lib\site-packages\pip\basecommand.py", line 139, in main
    status = self.run(options, args)
...... трішки пропущено ......
  File "C:\Python33\lib\ssl.py", line 327, in read
    v = self._sslobj.read(len, buffer)
ConnectionResetError: [WinError 10054] An existing connection was forcibly closed by the remote host

Я спочатку гуглив що це означає, нічого не знайшов, але при другій спробі запуску все встановилось до кінця.

bwikibot.exe (ого, його скомпілювали!) з’являється в C:\Python33\Scripts\ і повинен запускатись простою командою bwikibot.

Правда звісно ця версія має купу проблем:

C:\Users\tbunyk>bwikibot read book
Exception No module named 'bulk_actions' in extension bulk_actions.py
Exception No module named 'check_uploads' in extension check_uploads.py
Exception No module named 'films' in extension films.py
Exception No module named 'translator' in extension translator.py
Traceback (most recent call last):
  File "C:\Python33\Scripts\bwikibot-script.py", line 9, in <module>
    load_entry_point('bwikibot==0.4.13', 'console_scripts', 'bwikibot')()
  File "C:\Python33\lib\site-packages\bwikibot\cli.py", line 12, in main
    run(*sys.argv)
  File "C:\Python33\lib\site-packages\bwikibot\cli.py", line 22, in run
    action(*argv[2:])
  File "C:\Python33\lib\site-packages\bwikibot\cli.py", line 94, in read_page1
    read_page(SESSION_FILE, *args)
  File "C:\Python33\lib\site-packages\bwikibot\cli.py", line 89, in read_page
    print(wiki.page(name).read())
  File "C:\Python33\lib\encodings\cp866.py", line 19, in encode
    return codecs.charmap_encode(input,self.errors,encoding_map)[0]
UnicodeEncodeError: 'charmap' codec can't encode character '\u014d' in position
1846: character maps to <undefined>

І знаєте, я тут подумав що писати консольні програми для Windows – невдячна справа. Напевне доведеться дописати ще якусь гуйовину. Тому скоро очікуйте bwikibot 0.5.0!

Ах, і ще одна проблема Python на Windows – тут не все так просто з пакетами що містять бінарники. Наприклад при встановленні lxml я отримав:

error: Unable to find vcvarsall.bat

З PySide – йому бракувало програми nmake. PyQt теж чогось бракувало. Я погуглив і з’ясував що що vcvarsall.bat, що nmake не знайдеш без Visual Studio. Ну, Visual Studio я люблю і напевне поставлю, але що робити потенційним користувачам моїх програм, які і так вже повинні були витерпіти довгий процес інсталяції який включав редагування змінної Path я не знаю…

Ви лише погляньте який модний інтерфейс встановника Visual Studio і яка там досі огидна консоль.

Ви лише погляньте який модний інтерфейс встановника Visual Studio і яка там досі огидна консоль.


Filed under: Інструменти, Кодерство, Конспекти Tagged: Python, windows

Дівчина-салат

Дівчина-салат – це робоча назва прототипу підручника німецької який я на тих вихідних створив, але все не мав нагоди про це написати.

Власне якби я був голлівудським продюсером, я б вже давно на додачу до людини-павука, людини-кажана, жінки-кішки і решти людей-гібридів зняв би “дівчину-салат”. Це історія про дівчинку яка народилась від того що її мама з’їла генетично-модифіковану рослину (а які ви думаєте ще можуть рости на городі у відьми?) з виду Valerianella locusta, також відому як Рапунцель. А вони зняли якусь “Заплутану історію”, яку я не дивився, зате, прочитав оригінал братів Грімм. Казка містить глибоку мораль, суть якої в тому, що коли дітей недостатньо виховали, то навіть якщо їх замкнути в вежі, це не допоможе.

Казочку я читав мовою оригіналу, і це перший текст німецькою який я осилив. Осилив я його активно заглядаючи в словник, і виглядало це ось так:

Рапунцель з нотатками

Рапунцель з нотатками

І під час того я постійно думав, що це взагалі мій улюблений спосіб вчитись, тому що це не нудно і швидко набирається словниковий запас. Але чи вчусь я, поки гортаю сторінки словника? Здається єдине чого я вчусь – швидше відкривати потрібну сторінку і швидше знаходити на ній слово. На запам’ятовування самого слова йде менше часу і це напевне не добре.

Тому я подумав, що класно було б мати книжки, де словник знаходиться прямо на тій сторінці яку я читаю. Як в Gerda malaperis! (коли з’явиться українська стаття, нагадайте замінити посилання, не соромтесь). Gerda malaperis звісно виняткова книжка, бо написана саме з навчальною метою і на жаль аналогічних я більше не знаю.

Ще я подумав що подібним чином можна адаптувати звичайні твори. І саме для цієї мети мають чудово підходити зноски які вміє робити LaTeX. Їх було так багато, що довелось застосувати деякі нестандартні модулі аби спростити нумерацію. А ще довелось застосувати XeTeX, він знає про Unicode-шрифти. Бо в звичайному TeX Live отримати одночасно німецькі умляути й кирилицю дуже важко.

Є ще метод Іллі Франка, але він мені чомусь не дуже йде, напевне тому що там дізнаватись значення слова занадто просто і я ловлю себе на тому що читаю не німецькою а російською, пропускаючи все що не в дужках.

Коментарі щодо мого розуміння німецької граматики (і української), підказки щодо вдосконалення оформлення видання (ось код для XeTeX, рев’ю можна робити як тут, так і прямо на Google Code) та інша критика вітається.


Filed under: Всяке, Конспекти, Розмітка Tagged: deutsch, книжки, освіта