Настрока рабочего окружения

В этой главе будут описаны все инструменты, которые понадобятся для успешного освоения курса. Раздел будет обновляться, так что следите за изменениями и задавайте вопросы (а также отвечайте на вопросы друг друга), если что-то непонятно.

Установка интерпретатора Python

Во-первых, вам будет нужен интерпретатор языка Python (о том, что такое "интерпретатор" можно почитать тут). Где его взять? На юникс-подобных операционных системах (Linux, MacOS и др.) интерпретатор Python, скорее всего, уже установлен. Проверить это вы можете набрав в терминале (командной строке) команду python, например:

$ python
Python 2.7.10 (default, Oct 23 2015, 19:19:21) 
[GCC 4.2.1 Compatible Apple LLVM 7.0.0 (clang-700.0.59.5)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>>
Знак _доллара_ $ обозначает приглашение к вводу команд. В Windows такое приглашение обычно выглядит как символ _больше_ >.

Обратите внимание на версию, в моем случае это 2.7.10. Нам она не подходит ("Почему?" - можно почитать тут и тут). Нам нужен интерпретатор третьей версии. Если вы видите, что версия вторая, то попробуйте набрать команду python3:

$ python3
Python 3.6.1 (v3.6.1:69c0db5050, Mar 21 2017, 01:21:04) 
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>>

Если же появляется сообщение об ошибке, то интерпретатор нужно установить. Скачать интерпретатор под нужную операционную систему вы можете с официального сайта https://www.python.org/downloads/ (если вы пользователь Linux-системы, то установить интерпретатор можете из репозитория). После установки обязательно проверьте, что интерпретатор запускается:

$ python3
>>> print("Hello, World!")
Hello, World!
>>> quit()

Это интерактивный режим работы с интерпретатором языка Python (REPL). Три символа "больше" >>> являются приглашением к вводу команд. Для завершения работы с интерпретатором нужно набрать команду quit().

Важно: Если вы устанавливаете Python на Windows, то есть вероятность, что, набрав команду python или python3 после установки, вы получите сообщение об ошибке. Если так, то попробуйте набрать py или py3, вместо python и python3, соответственно. Если вы по-прежнему получаете сообщение об ошибке, то возможно, что путь к интерпретатору не указан в переменной окружения PATH. Прежде чем задавать вопросы "Почему ничего не работает?", прочитайте как правильно все настроить https://docs.python.org/3/using/windows.html#configuring-python.

Выбор редактора кода

Вам будет нужен редактор кода. Это может быть "простой" текстовый редактор с подсветкой синтаксиса SublimeText или же полноценная среда разработки PyCharm (подходящим для меня решением оказалась связка из редактора Vim и интересного, на мой взгляд, проекта Kite). Я вам рекомендую попробовать оба варианта, но средой разработки пользоваться только после того, как научитесь работать с интерпретатором и системой контроля версий, что будет обязательным для нашего курса.

Для ваших работ заведите себе отдельную папку, назовите ее cs102 (можете назвать иначе). В этой папке создайте новый файл с именем hello.py, откройте его с помощью редактора SublimeText (или любого другого, который вам больше понравился):

alt text

Откройте терминал (командную строку), перейдите в папку с созданным файлом с помощью команды cd путь_к_cs102 (рекомендую вам создать alias, т.е. короткое имя для пути, чтобы в будущем вы всегда могли быстро перейти в эту папку) и запустите скрипт с помощью команды python hello.py:

alt text

Таким образом, мы написали и запустили простейшую программу (скрипт). Запомните эти шаги.

Работа с виртуальными окружениями

Для выполнения работ рекомендуется использовать модуль virtualenv, предназначенный для создания и управления изолированными (виртуальными) окружениями. virtualenv позволяет заключить в отдельный каталог необходимые версии python-пакетов и использовать только их. Используя virtualenv, вы можете устанавливать свежие версии пакетов из Python Package Index, при этом не получая проблем с совместимостью версий загруженных пакетов и тех, что уже имеются в системе.

$ pip install virtualenv

Для более комфортной работы с virtualenv мы будем использовать расширение virtualenvwrapper (ниже приведены команды для Unix-like систем, см. замечание):

$ pip install virtualenvwrapper
$ echo "source virtualenvwrapper.sh" >> ~/.bashrc
$ source ~/.bashrc
Замечание: Для пользователей Windows следует установить модуль virtualenvwrapper-win вместо virtualenvwrapper. Также рекомендуется установить Git SCM.

Создать новое виртуальное окружение можно с помощью команды mkvirtualenv (обратите внимание на то, как меняется путь к интерпретатору python):

$ which python3
/Library/Frameworks/Python.framework/Versions/3.6/bin/python3
$ mkvirtualenv cs102
$ workon cs102
(cs102) $ which python
/Users/dementiy/.virtualenvs/cs102/bin/python
(cs102) $ deactivate
$
Замечание: Если у вас не получается настроить virtualenvwrapper на ОС Windows, то можете ограничиться virtualenv:
$ virtualenv cs102-env
$ cs102-env\Scripts\activate.bat
(cs102-env) $ # Окружение активировано
$ deactivate

Давайте в созданном виртуальном окружении установим два новых пакета: bpython и ipython. Это тоже интерпретаторы языка Python, но с дополнительными функциями (подсветка синтаксиса, подсказки и др):

# Не забудем перейти в наше виртуальное окружение
$ workon cs102
# Установим необходимые пакеты
(cs102) $ pip install bpython jupyter
# Запуск bpython
(cs102) $ python -m bpython
# Запуск ipython
(cs102) $ ipython
bpython на Windows может не работать.
В этом примере мы использовали pip для установки новых пакетов. Иногда устанавливаемый пакет требует наличие других пакетов для своей работы, которые пакеты устанавливаются автоматически (говорят "по зависимостям"). Но может возникнуть ситуация, когда вам придется вручную установить нужную библиотеку. Если вы не знаете как это сделать, то поищите ответ на stackoverflow.com, скорее всего кто-то уже столкнулся с той же проблемой, что и вы.

Теперь всякий раз приступая к работе, активируйте созданное виртуальное окружение с помощью команды workon cs102. Полный список команд по работе с virtualenvwrapper можно найти тут.

Система контроля версий

Мы будем пользоваться системой контроля версий (на занятии разберем зачем это нужно, но можете начать читать вот это руководство). Вам нужно зарегистрироваться либо на https://github.com, либо на https://bitbucket.org/. Все изменения, которые будут происходить с вашими работами, могут храниться локально (у вас на компьютере), а могут и удаленно. Таким образом, вы всегда сможете продолжить работу над своим проектом. На bitbucket есть возможность создания бесплатного приватного (закрытого) репозитория (хранилища) для вашего проекта. Далее приведен пример с использованием bitbucket (рекомендую проделать эти шаги и на github).

Зарегистрируйтесь на сайте https://bitbucket.org/. По завершении регистрации вам будет предложено создать новый репозиторий (либо вкладка Repository -> Crete new repository). Укажите следующие параметры для вашего проекта (в дальнейшем их можно будет изменить):

alt text

Далее раскройте список со словами I'm starting from scratch:

alt text

Достаточно повторить указанные шаги, но вместо файла contributors.txt мы сделаем коммит (загрузим изменения на сервер) нашей программы hello.py:

(cs102) $ git init
Initialized empty Git repository in /Users/user/cs102/.git/
(cs102) $ git remote add origin https://[email protected]/Dementiy/cs102.git
(cs102) $ git add hello.py 
(cs102) $ git commit -m 'Initial commit with my first program on Python'

*** Please tell me who you are.

Run

  git config --global user.email "[email protected]"
  git config --global user.name "Your Name"

to set your account`s default identity.
Omit --global to set the identity only in this repository.

fatal: unable to auto-detect email address (got 'user@Air-user.(none)')
(cs102) $ git config --global user.email "[email protected]"
(cs102) $ git config --global user.name "Dmitriy"
(cs102) $ git commit -m 'Initial commit with my first program on Python'
[master (root-commit) b9c8e00] Initial commit with my first program on Python
 1 file changed, 1 insertion(+)
 create mode 100644 hello.py
(cs102) $ git push -u origin master
Password for 'https://[email protected]': 
Counting objects: 3, done.
Writing objects: 100% (3/3), 258 bytes | 0 bytes/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To https://[email protected]/Dementiy/cs102.git
 * [new branch]      master -> master
Branch master set up to track remote branch master from origin.
Важно: если после выполнения команды git init вы получили сообщение об ошибке о том, что команда git не найдена, то, скорее всего, вы работаете под Windows и git нужно установить. Обратите внимание на выполнение простейшей настройки git с помощью команды git config.

Теперь убедитесь, что новый файл появился на https://bitbucket.org/. Для этого зайдите в раздел Source:

alt text

Давайте немного изменим нашу программу hello.py, добавив в нее функцию (на занятиях мы обязательно поговорим о функциях, но пока функцию можно воспринимать как контейнер со списком действий) и проверку на то, выполняется ли наша программа как скрипт или она используется как модуль (библиотека, подключаемая в других скриптах):

def message():
    print("Hello, World!")

if __name__ == "__main__":
    message()
# Запуск программы как скрипта
(cs102) $ python3 hello.py
Hello, World!

# Использование программы как модуля
(cs102) $ python3
>>> import hello
>>> hello.message()
Hello, World!

Итак, мы внесли нужные изменения в программу, git эти изменения также заметил. Проверить это можно с помощью команды git status:

(cs102) $ git status
On branch master
Your branch is up-to-date with 'origin/master'.
Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)

    modified:   hello.py

no changes added to commit (use "git add" and/or "git commit -a")

Теперь нам нужно сделать коммит, чтобы зафиксировать изменения в истории проекта:

(cs102) $ git add hello.py 
(cs102) $ git commit -m "Add function message()"
(cs102) $ git push

На первое время нам этого будет достаточно.

Задание: Добавьте в репозиторий файл с именем README.md, который должен содержать информацию о вас (имя, фамилия, электронная почта для связи и номер группы) и небольшое описание вашего репозитория (например, "Решения лабораторных работ к курсу..."). README.md должен быть в формате Markdown , про который можно почитать тут. Также можете воспользоваться онлайн редактором Dillinger.

Если вы не будете задавать вопросы, то, к сожалению, вам никто не сможет помочь. Slack является основным средством общения, где вы можете задать вопрос, попросить помощи, высказать свои пожелания или недовольства касательно курса. Постарайтесь получить удовольствие от наших занятий. Успехов!

results matching ""

    No results matching ""