Настрока рабочего окружения
В этой главе будут описаны все инструменты, которые понадобятся для успешного освоения курса. Раздел будет обновляться, так что следите за изменениями и задавайте вопросы (а также отвечайте на вопросы друг друга), если что-то непонятно.
Установка интерпретатора 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.
>>>
Обратите внимание на версию, в моем случае это 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()
.
Выбор редактора кода
Вам будет нужен редактор кода. Это может быть "простой" текстовый редактор с подсветкой синтаксиса SublimeText или же полноценная среда разработки PyCharm (подходящим для меня решением оказалась связка из редактора Vim и интересного, на мой взгляд, проекта Kite). Я вам рекомендую попробовать оба варианта, но средой разработки пользоваться только после того, как научитесь работать с интерпретатором и системой контроля версий, что будет обязательным для нашего курса.
Для ваших работ заведите себе отдельную папку, назовите ее cs102
(можете назвать иначе). В этой папке создайте новый файл с именем hello.py
, откройте его с помощью редактора SublimeText
(или любого другого, который вам больше понравился):
Откройте терминал (командную строку), перейдите в папку с созданным файлом с помощью команды cd путь_к_cs102
(рекомендую вам создать alias
, т.е. короткое имя для пути, чтобы в будущем вы всегда могли быстро перейти в эту папку) и запустите скрипт с помощью команды python hello.py
:
Таким образом, мы написали и запустили простейшую программу (скрипт). Запомните эти шаги.
Работа с виртуальными окружениями
Для выполнения работ рекомендуется использовать модуль virtualenv
, предназначенный для создания и управления изолированными (виртуальными) окружениями. virtualenv
позволяет заключить в отдельный каталог необходимые версии python-пакетов и использовать только их. Используя virtualenv
, вы можете устанавливать свежие версии пакетов из Python Package Index, при этом не получая проблем с совместимостью версий загруженных пакетов и тех, что уже имеются в системе.
$ pip install virtualenv
Для более комфортной работы с virtualenv
мы будем использовать расширение virtualenvwrapper
(ниже приведены команды для Unix-like систем, см. замечание):
$ pip install virtualenvwrapper
$ echo "source virtualenvwrapper.sh" >> ~/.bashrc
$ source ~/.bashrc
Создать новое виртуальное окружение можно с помощью команды 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
$
$ 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
Теперь всякий раз приступая к работе, активируйте созданное виртуальное окружение с помощью команды workon cs102
. Полный список команд по работе с virtualenvwrapper
можно найти тут.
Система контроля версий
Мы будем пользоваться системой контроля версий (на занятии разберем зачем это нужно, но можете начать читать вот это руководство). Вам нужно зарегистрироваться либо на https://github.com, либо на https://bitbucket.org/. Все изменения, которые будут происходить с вашими работами, могут храниться локально (у вас на компьютере), а могут и удаленно. Таким образом, вы всегда сможете продолжить работу над своим проектом. На bitbucket есть возможность создания бесплатного приватного (закрытого) репозитория (хранилища) для вашего проекта. Далее приведен пример с использованием bitbucket (рекомендую проделать эти шаги и на github).
Зарегистрируйтесь на сайте https://bitbucket.org/. По завершении регистрации вам будет предложено создать новый репозиторий (либо вкладка Repository -> Crete new repository
). Укажите следующие параметры для вашего проекта (в дальнейшем их можно будет изменить):
Далее раскройте список со словами I'm starting from scratch
:
Достаточно повторить указанные шаги, но вместо файла 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.
Теперь убедитесь, что новый файл появился на https://bitbucket.org/. Для этого зайдите в раздел Source
:
Давайте немного изменим нашу программу 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.