Новости
- Вступ Django - широко відомий і один з найбільш розвинених фреймворків для веб-розробки. Django...
- висновок
Вступ
Django - широко відомий і один з найбільш розвинених фреймворків для веб-розробки. Django написаний на Python і, отже, для роботи з ним буде потрібно встановлений інтерпретатор Python. Це не становить жодних проблем, якщо ми працюємо в середовищі Linux. Однак події приймають зовсім інший оборот, якщо доводиться займатися розробкою на Python під Windows.
Для Windows є готові збірки Python, серед яких варто відзначити Enthought Python , Anaconda Python , PythonXY .
Є і більш прості шляхи (див. http://docs.python-guide.org/en/latest/starting/install/win/ ).
Основний їх недолік в порівнянні зі «стандартним» Python в Linux - обмеженість набору бібліотек, доступних для установки. Зокрема, в них не Django, і для його установки доводиться здійснювати якісь не зовсім очевидні дії.
Один з можливих варіантів вирішення проблеми - установка віртуальної машини з Linux на борту. Робота з віртуальною машиною, незважаючи на простоту її установки і настройки, привносить ряд незручностей.
Так, віртуальна машина може виявитися досить вимогливою до ресурсів комп'ютера і часом працювати повільно, створюючи дискомфорт розробнику. Особливо сильно це дратує, якщо гальмування починається в найбільш напружений момент роботи (а саме тоді це найчастіше і відбувається!). Крім того, навіть на дуже хорошому залозі таке IDE, як PyCharm, працює в режимі далекому від того, який прийнято вважати комфортним.
Підвищити швидкодію можна за рахунок установки тільки необхідних пакетів, відсутності віконного менеджера і тому подібних проблем. Т. е., Необхідно правильно налаштувати віртуальну машину. І в цій справі на допомогу приходить Vagrant - утиліта для створення повністю готових робочих оточень на основі віртуальних машин (VirtualBox, VmWare Player / Workstation). Vagrant не тільки встановлює віртуальну машину, але і дозволяє з легкістю створювати нові, використовуючи поточну конфігурацію користувача.
У наступному розділі розглядається установка і настройка робочого оточення Vagrant для використання його в якості віддаленого Python інтерпретатора для проектів PyCharm.
Робота з Vagrant в Windows
2. 1 Установка Vagrant і завантаження оточення
Установка Vagrant виконується дуже просто. Все, що необхідно, - завантажити установник з сайту https://dl.bintray.com/mitchellh/vagrant/vagrant_1.5.2.msi і запустити його. Крім того, для роботи Vagrant потрібно встановити одну з віртуальних машин VirtualBox або VMware.
Після того, як Vagrant встановлений, ми переходимо до створення робочого оточення. Основа його побудови - «коробка» Vagrant (box). '' Коробка '' Vagrant є файл з розширенням box. Цей файл є не що інше, як архів tar, можливо стислий за допомогою gzip. Всередині архіву зберігаються образ віртуальної машини і файли, необхідні для її коректного запуску.
На офіційному сайті Vagrant є значне число готових «коробок» з різними версіями Linux і встановленим ПО. Їх список можна подивитися на VagrantCloud .
Ще більше готових оточень є на http://www.vagrantbox.es .
Для наших цілей цілком підійде стандартна версія Ubuntu - hashicorp / precise64 з попередньо встановленими Chef і Puppet (які нам, до речі кажучи, не знадобляться) з офіційного репозиторію. Перед тим як встановлювати оточення, створимо директорію, де буде зберігатися файл з конфігурацією для нього. Назвемо її Vagrant. Переходимо в цю директорію і виконуємо в консолі:
\ Vagrant> vagrant init hashicorp / precise64
Після цього в директорії з'явиться файл Vagrantfile, в якому міститься опис конфігурації даного оточення. Наприклад, рядок config.vm.box = «hashicorp / precise64» визначає ім'я нашого оточення. Тепер все готово до того, щоб приступити до запуску оточення. Виконаємо
\ Vagrant> vagrant up
і побачимо повідомлення про завантаження відповідної «коробки». Т. к. Це - перший запуск даного оточення, перед стартом його треба завантажити зі сховищ на локальний диск. Слід зауважити, що в наведеному вище прикладі аргумент команди init - ім'я оточення - співпадає з таким на сайті Vagrant. Це відповідність необов'язково. Так, можна було б конфігурувати дане оточення (його версію без Chef і Puppet) і таким чином:
\ Vagrant> vagrant init precise64 http: //cloud-images.ubuntu.com/vagrant/precise/current / ... .box
Другий аргумент init, як нескладно помітити, являє собою URL «коробки». Відзначимо також, що імена оточень, наприклад, використані вище hashicorp / precise64, precise64, фактично потрібні для зручної орієнтації серед встановлених оточень, а сам Vagrant використовує унікальні ідентифікатори для запуску необхідного оточення (їх значення зберігається в файлі action_set_name). Файли робочих оточень зберігаються за замовчуванням в директорії ~ / .vagrant.d}, де «~» в Windows - директорія C: \ Users \ your_login \.
Після того як ми виконали vagrant up і дочекалися завантаження оточення, воно готове до використання, в чому можна переконатися, перевіривши його статус:
\ Vagrant> vagrant status
Для завершення роботи оточення використовується команда
\ Vagrant> vagrant halt
Всі встановлені оточення Vagrnat можна переглянути за допомогою vagrant box list або безпосередньо в VirtualBox (VMware), малюнок 2.1.
2.1 Virtualbox з встановленими віртуальними машинами Vagrant
На закінчення цього розділу відзначимо, що оточення Vagrant може бути додано за допомогою команди vagrant box add. Детальніше про неї і про інших консольних командах Vagrant можна прочитати на сторінці з офіційну документацію .
2.2. Підключення до оточення Vagrant
При старті оточення (vagrant up) в папці .vagrant.d автоматично створюється ключ insecure_private_key для підключення до оточення по протоколу ssh. Для використання протоколу ssh в Windows нам будуть потрібні програми PuTTY і PuTTYgen (Для конвертації ключа в формат, який PuTTY розуміє). Запускаємо PuTTYgen, відкриваємо insecure_private_key і бачимо повідомлення, що ключ був успішно імпортовано. Тепер можна зберегти його в форматі ppk як private key.
З міркувань зручності ключ можна зберегти в папку з файлом Vagrantfile для даного оточення. Тепер вказуємо PuTTY, який ключ використовувати, і підключаємося через порт 2222 (номер порту відображається при виконанні vagrant up). За замовчуванням для підключення використовується ім'я (login) - vagrant.
Якщо підключення пройшло вдало, ми опинимося в консолі нашого Vagrant-оточення, звідки можна встановлювати бібліотеки Python або системні програми.
2.2 Збереження ключа в PuTTYgen
(А) Налаштування параметрів PuTTY (б) Шлях до ключу ssh Рис. 2.3 настройка параметрів з'єднання PuTTY
Тепер, коли робочі оточення завантажені і запущені, все готово до установки Python і власне Django. Хороша практика - використання віртуальних оточень для роботи з Python (і не тільки з ним). У цьому випадку ризик конфліктів з уже встановленими в системі версіями інтерпретатора та іншого ПО зводиться до мінімуму і з'являється можливість одночасної роботи з різними версіями інтерпретатора Python, Django або будь-якого іншого пакета.
Для установки віртуального оточення виконуємо в консолі Vagrant:
vagrant @ vagrant sudo apt-get install python-virtualenv
Після завершення установки створюємо нове віртуальне оточення
vagrant @ vagrant virtualenv venv
активуємо його
vagrant @ vagrant source / home / vagrant / venv / bin / activate
Тепер прийшов час встановити Django:
(Venv) vagrant @ vagrant pip install django
Можна вказати версію пакету, яку ми хочемо встановити:
(Venv) vagrant @ vagrant pip install django == 1.4
Django встановлений, але залишилася одна невелика завдання: навчити PyCharm працювати з інтерпретатором Python, встановленим в оточенні Vagrant. Як це зробити, розбирається в наступному розділі.
2.4 Налаштування PyCharm
Запустимо PyCharm і створимо новий Django-проект. За замовчуванням він створюється в папці ~ / PycharmProjects /. Нехай це буде проект Test. Далі в домашній директорії робочого оточення Vagrant створимо папку PycharmProjects (збіг імен випадково і вибрано з міркувань зручності).
Переходимо в меню налаштувань проекту: File-> Settings-> Project Interpeter. Тут додаємо новий інтерпретатор: вказуємо його адресу (127.0.0.1), номер порту (2222), ім'я користувача (vagrant), шлях до інтерпретатора / home / vagrant / venv / bin / python і, нарешті, вказуємо шлях до файлу з ключем для ssh (див. розділ 2.2)
Тепер необхідно налаштувати синхронізацію локальної папки з проектами та аналогічної папки в оточенні Vagrant. Відкриваємо для редагування файл Vagrant і раскомментіруем в ньому рядок з config.vm.synced_folder, виправляючи її на config.vm.synced_folder C: / Users / adolgikh / PycharmProjects, / home / vagrant / PycharmProjects. Тепер локальні файли будуть синхронізуватися з оточенням, в якому встановлений інтерпретатор. перезапускаємо Vagrant
$ Vagrant reload
і бачимо, що наша папка з проектом Test була успішно додана в папку з проектами в віддаленому робочому оточенні.
Щоб поточні зміни, зроблені по ходу роботи над проектом, відразу відправлялися в віддалену середу, необхідно зробити додаткові налаштування в проекті Pycharm. Заходимо в меню Run-> Edit Configuration і коригуємо Path Mapping так, як це показано на скріншоті.
Згадки заслуговує можливість запуску ssh-консолі в Pycharm. Вона запускається з меню Tools і підключається по ssh до оточення, яке зазначено в настройках віддаленого інтерпретатора. Таким чином, нам немає необхідності використовувати PuTTY з коректно настроєним проектом в Pycharm.
Мал. 2.4 Налаштування Path Mapping в Pycharm
висновок
Безсумнівно, Vagrant хороший не тільки тим, що дозволяє істотно підвищити зручність Python-розробки в Windows. Встановлюючи Vagrant, ми отримуємо можливість створювати, конфігурувати і зберігати повністю функціональні робочі оточення. Більш того, ми можемо створювати конфігурації, де одночасно працюють кілька Vagrant оточень з різними конфігураціями.
Таким чином, з'являється можливість досить точно змоделювати передбачуване робоче оточення, яке використовується в production. Одним словом, Vagrant є ще один цінний інструмент в руках розробника, в подальшому ми постараємося висвітлити і інші аспекти роботи з ним.