Блоґ одного кібера

Історія хвороби контуженого інформаційним вибухом

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

with 7 comments

Тут трішки розповім про установку і налаштування 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 і яка там досі огидна консоль.

Advertisements

Written by bunyk

Червень 10, 2013 at 13:07

Відповідей: 7

Subscribe to comments with RSS.

  1. Стаття гарна, але не розкриває проблем компіляції, вирішених Christoph Gohlke: http://www.lfd.uci.edu/~gohlke/pythonlibs/

    Andrew Berezovskiy (@berezovskiy)

    Червень 10, 2013 at 16:27

    • Дякую за посилання. Бо установка VisualStudio не допомогла.

      bunyk

      Червень 10, 2013 at 18:06

  2. А, ще відносно консолі: перейдіть на Console2 чи PowerShell. Точніше сказати, у Console2 можна налаштувати відкриття вікон терміналів у вкладках (наприклад, cmd, powershell, ipython).

    Консоль така огидна лише через необхідність зворотньої сумісності. Powershell ISE справить на вас гарне враження.

    Усе ПЗ окрім Console2 вже є у вас на Windows 7. Наприкінці місяця виходить попередня версія Windows 8.1, зверніть увагу на це оновлення!

    Andrew Berezovskiy (@berezovskiy)

    Червень 10, 2013 at 16:32

    • Console2 та PowerShell якось подивлюсь. Хоча мені cygwin дуже сподобався. Там навіть Mercurial може з коробочки працювати.

      bunyk

      Червень 10, 2013 at 18:07

    • PowerShell справді трохи краще і добре що він вбудований.

      А щодо Windows 8 – то вже як наш IT відділ вирішить.

      bunyk

      Червень 10, 2013 at 18:13

    • Powershell ISE справді супер. Дякую що сказали, ніколи не знаєш коли яка порада знадобиться! 🙂

      bunyk

      Квітень 15, 2014 at 15:30

  3. […] Хех, і самому треба спробувати пройти посібник (pdf-версія) за день. (Хоча, думаю найгірше що там буде – доведеться допомагати ставити Python на Windows). […]


Залишити відповідь

Заповніть поля нижче або авторизуйтесь клікнувши по іконці

Лого WordPress.com

Ви коментуєте, використовуючи свій обліковий запис WordPress.com. Log Out / Змінити )

Twitter picture

Ви коментуєте, використовуючи свій обліковий запис Twitter. Log Out / Змінити )

Facebook photo

Ви коментуєте, використовуючи свій обліковий запис Facebook. Log Out / Змінити )

Google+ photo

Ви коментуєте, використовуючи свій обліковий запис Google+. Log Out / Змінити )

З’єднання з %s

%d блогерам подобається це: