Софт-Портал

Интерпретатор Python Для Windows

Рейтинг: 4.9/5.0 (79 проголосовавших)

Категория: Windows

Описание

Установка интерпретатора Python и среды разрабоки PyDev для Eclipse

Установка интерпретатора Python и среды разрабоки PyDev для Eclipse

Всем привет, сегодня я расскажу о том, как вам начать разрабатывать на Python свои программы, а именно о установке интерпретатора, а также о среде разработки PyDev для Eclipse.

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

Интерпретатор нужен для обработки инструкций исходного кода сценариев на языке Python, последующей компиляции в байт-код и выполнения на виртуальной машине. О всех этих понятиях и как работает Python рассказываю в следующей статье .

Установка для Windows

Скачайте пакет ActivePython и установите его, почему именно этот пакет расскажу в следующей статье. Далее, запустите консоль Windows (cmd.exe) через Пуск->Выполнить (Win+R) и введите команду "python", вы увидите следующее:

Если у вас вышло следующее сообщение:

то вам следует прописать путь до "python.exe" в системную переменную "Path".

Установка Python для FreeBSD

Тут все проще, сначала обновите порты. далее просто установите Python из портов:

rehash - нужен для того, чтобы сразу же, без перезагрузки терминала вам была доступна команда "python", без необходимости ввода полного пути до исполняемого файла!

Если вам нужна конкретная версия, то на момент написания статьи доступны следующие версии:

Интегрированные среды разработки (IDE)

В качестве IDE для Python существует куча программ, можно выбрать IDLE. как рекомендует автор книги "Изучаем Python" Марк Лутц, или NetBeans например, однако я рекомендую установить Eclipse и расширение PyDev .

PyDev для Eclipse

Заходим на страницу расширения: Eclipse / PyDev и копируем "Update Site URL":

Далее, в Eclipse, проходим в окно "Help -> Install new software. " и вбиваем туда эту ссылку, жмем "Finish" и следуем инструкциям Eclipse, он вас попросит перезагрузить IDE, перезагрузите. Далее, добавьте новую перспективу: "Windows -> Open Perspective -> Other. -> Pydev", жмем "OK" и все, вы установили PyDev, переходите к следующей статье .

Комментарии

интерпретатор python для windows:

  • скачать
  • скачать
  • Другие статьи, обзоры программ, новости

    Vagrant, Python, Pycharm (удобная, работа, Windows)

    Vagrant, Python, Pycharm = (удобная, работа, Windows)

    Введение

    Django — широко известный и один из наиболее развитых фреймворков для веб-разработки. Django написан на Python и, следовательно, для работы с ним потребуется установленный интерпретатор Python. Это не представляет никаких проблем, если мы работаем в среде Linux. Однако события принимают совсем другой оборот, если приходится заниматься разработкой на Python под Windows.

    Для Windows есть готовые сборки Python, среди которых стоит отметить Enthought Python. Anaconda Python. PythonXY .
    Есть и более простые пути .
    Основной их недостаток по сравнению со «стандартным» Python в Linux — ограниченность набора библиотек, доступных для установки. В частности, в них не Django, и для его установки приходится совершать некие не совсем очевидные действия.

    Один из возможных вариантов решения проблемы — установка виртуальной машины с Linux на борту. Работа с виртуальной машиной, несмотря на простоту ее установки и настройки, привносит ряд неудобств.
    Так, виртуальная машина может оказаться довольно требовательной к ресурсам компьютера и временами работать медленно, создавая дискомфорт разработчику. Особенно сильно это раздражает, если торможение начинается в самый напряженный момент работы (а именно тогда это чаще всего и происходит!). Кроме того, даже на очень хорошем железе такое IDE, как PyCharm, работает в режиме далеком от того, который принято считать комфортным.

    Повысить быстродействие можно за счет установки только необходимых пакетов, отсутствия оконного менеджера и тому подобных проблем. Т. е. необходимо правильно сконфигурировать виртуальную машину. И в этом деле на помощь приходит Vagrant — утилита для создания полностью готовых рабочих окружений на основе виртуальных машин (VirtualBox, VmWare Player/Workstation). Vagrant не только устанавливает виртуальную машину, но и позволяет с легкостью создавать новые, используя текущую конфигурацию пользователя.

    В следующем разделе рассматривается установка и настройка рабочего окружения Vagrant для использования его в качестве удаленного Python интерпретатора для проектов PyCharm.

    Работа с Vagrant в Windows
    Установка Vagrant и загрузка окружения

    Установка Vagrant выполняется очень просто. Все, что необходимо, — скачать установщик с сайта и запустить его. Кроме того, для работы Vagrant требуется установить одну из виртуальных машин VirtualBox или VMware.

    После того, как Vagrant установлен, мы переходим к созданию рабочего окружения. Основа его построения — «коробка» Vagrant (box). »Коробка» Vagrant представляет собой файл с расширением box. Этот файл есть не что иное, как архив tar, возможно сжатый с помощью gzip. Внутри архива хранятся образ виртуальной машины и файлы, необходимые для ее корректного запуска.

    На официальном сайте Vagrant есть значительное число готовых «коробок» с различными версиями Linux и установленным ПО. Их список можно посмотреть на VagrantCloud .
    Еще больше готовых окружений доступно на www.vagrantbox.es .

    Для наших целей вполне подойдет стандартная версия Ubuntu — hashicorp/precise64 с предустановленными Chef и Puppet (которые нам, к слову сказать, не понадобятся) из официального репозитория. Перед тем как устанавливать окружение, создадим директорию, где будет храниться файл с конфигурацией для него. Назовем ее Vagrant. Переходим в эту директорию и выполняем в консоли:

    После этого в директории появится файл Vagrantfile, в котором содержится описание конфигурации данного окружения. Например, строчка config.vm.box = «hashicorp/precise64» определяет имя нашего окружения. Теперь все готово к тому, чтобы приступить к запуску окружения. Выполним

    и увидим сообщение о загрузке соответствующей «коробки». Т. к. это — первый запуск данного окружения, перед стартом его надо скачать из репозитория на локальный диск. Следует заметить, что в приведенном выше примере аргумент команды init — имя окружения — совпадает с таковым на сайте Vagrant. Это соответствие необязательно. Так, можно было бы сконфигурировать данное окружение (его версию без Chef и Puppet) и таким образом:

    Второй аргумент init, как несложно заметить, представляет собой URL «коробки». Отметим также, что имена окружений, например, использованные выше hashicorp/precise64, precise64, фактически нужны для удобной ориентации среди установленных окружений, а сам Vagrant использует уникальные идентификаторы для запуска требуемого окружения (их значение хранится в файле action_set_name). Файлы рабочих окружений хранятся по умолчанию в директории

    » в Windows — директория C:\Users\your_login\.

    После того как мы выполнили vagrant up и дождались загрузки окружения, оно готово к использованию, в чем можно убедиться, проверив его статус:

    Для завершения работы окружения используется команда

    Все установленные окружения Vagrnat можно просмотреть с помощью vagrant box list или непосредственно в VirtualBox (VMware).

    Virtualbox с установленными виртуальными машинами Vagrant.

    В заключение этого раздела отметим, что окружение Vagrant может быть добавлено с помощью команды vagrant box add. Подробнее о ней и о других консольных командах Vagrant можно прочитать на странице с официальной документацией .

    Подключение к окружению 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 или системные приложения.

    Сохранение ключа в PuTTYgen.

    Настройка параметров соединения PuTTY.

    Теперь, когда рабочие окружения скачаны и запущены, все готово к установке Python и собственно Django. Хорошая практика — использование виртуальных окружений для работы с Python (и не только с ним). В этом случае риск конфликтов с уже установленными в системе версиями интерпретатора и прочего ПО сводится к минимуму и появляется возможность одновременной работы с разными версиями интерпретатора Python, Django или любого другого пакета.

    Для установки виртуального окружения выполняем в консоли Vagrant:

    После завершения установки создаем новое виртуальное окружение

    Теперь пришло время установить Django:

    Можно указать версию пакета, которую мы хотим установить:

    Django установлен, но осталась одна небольшая задача: научить PyCharm работать с интерпретатором Python, установленным в окружении Vagrant. Как это сделать, разбирается в следующем разделе.

    Настройка PyCharm

    Запустим PyCharm и создадим новый Django-проект. По умолчанию он создается в папке

    /PycharmProjects/. Пусть это будет проект Test. Далее в домашней директории рабочего окружения Vagrant создадим папку PycharmProjects (совпадение имен случайно и выбрано из соображений удобства).

    Переходим в меню настроек проекта: File->Settings->Project Interpeter. Здесь добавляем новый интерпретатор: указываем его адрес (127.0.0.1), номер порта (2222), имя пользователя (vagrant), путь к интерпретатору /home/vagrant/venv/bin/python и, наконец, указываем путь к файлу с ключом для ssh.

    Теперь необходимо настроить синхронизацию локальной папки с проектами и аналогичной папки в окружении Vagrant. Открываем для редактирования файл Vagrant и раскомментируем в нем строку с config.vm.synced_folder, исправляя ее на config.vm.synced_folder C:/Users/adolgikh/PycharmProjects, /home/vagrant/PycharmProjects. Теперь локальные файлы будут синхронизироваться с окружением, в котором установлен интерпретатор. Перезапускаем Vagrant

    и видим, что наша папка с проектом Test была успешно добавлена в папку с проектами в удаленном рабочем окружении.

    Чтобы текущие изменения, сделанные по ходу работы над проектом, сразу отправлялись в удаленную среду, необходимо сделать дополнительные настройки в проекте Pycharm. Заходим в меню Run->Edit Configuration и корректируем Path Mapping так, как это показано на скриншоте.
    Упоминания заслуживает возможность запуска ssh-консоли в Pycharm. Она запускается из меню Tools и подключается по ssh к окружению, которое указано в настройках удаленного интерпретатора. Таким образом, нам нет необходимости использовать PuTTY с корректно настроенным проектом в Pycharm.

    Настройка Path Mapping в Pycharm

    Заключение

    Несомненно, Vagrant хорош не только тем, что позволяет существенно повысить удобство Python-разработки в Windows. Устанавливая Vagrant, мы получаем возможность создавать, конфигурировать и сохранять полностью функциональные рабочие окружения. Более того, мы можем создавать конфигурации, где одновременно работают несколько Vagrant окружений с различными конфигурациями.
    Таким образом, появляется возможность достаточно точно смоделировать предполагаемое рабочее окружение, используемое в production. Одним словом, Vagrant представляет собой еще один ценный инструмент в руках разработчика, в дальнейшем мы постараемся осветить и другие аспекты работы с ним.

    Запись опубликована автором admin в рубрике Без рубрики. Добавьте в закладки постоянную ссылку.

    Корпоративный блог DataArt

    Vagrant, Python, Pycharm = (удобная, работа, Windows) Введение

    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. Переходим в эту директорию и выполняем в консоли:

    После этого в директории появится файл Vagrantfile, в котором содержится описание конфигурации данного окружения. Например, строчка config.vm.box = «hashicorp/precise64» определяет имя нашего окружения. Теперь все готово к тому, чтобы приступить к запуску окружения. Выполним

    и увидим сообщение о загрузке соответствующей «коробки». Т. к. это — первый запуск данного окружения, перед стартом его надо скачать из репозитория на локальный диск. Следует заметить, что в приведенном выше примере аргумент команды init — имя окружения — совпадает с таковым на сайте Vagrant. Это соответствие необязательно. Так, можно было бы сконфигурировать данное окружение (его версию без Chef и Puppet) и таким образом:

    Второй аргумент init, как несложно заметить, представляет собой URL «коробки». Отметим также, что имена окружений, например, использованные выше hashicorp/precise64, precise64, фактически нужны для удобной ориентации среди установленных окружений, а сам Vagrant использует уникальные идентификаторы для запуска требуемого окружения (их значение хранится в файле action_set_name). Файлы рабочих окружений хранятся по умолчанию в директории

    » в Windows — директория C:\Users\your_login\.

    После того как мы выполнили vagrant up и дождались загрузки окружения, оно готово к использованию, в чем можно убедиться, проверив его статус:

    Для завершения работы окружения используется команда

    Все установленные окружения 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

    Рис. 2.3 настройка параметров соединения PuTTY

    Теперь, когда рабочие окружения скачаны и запущены, все готово к установке Python и собственно Django. Хорошая практика — использование виртуальных окружений для работы с Python (и не только с ним). В этом случае риск конфликтов с уже установленными в системе версиями интерпретатора и прочего ПО сводится к минимуму и появляется возможность одновременной работы с разными версиями интерпретатора Python, Django или любого другого пакета.

    Для установки виртуального окружения выполняем в консоли Vagrant:

    После завершения установки создаем новое виртуальное окружение

    Теперь пришло время установить Django:

    Можно указать версию пакета, которую мы хотим установить:

    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

    и видим, что наша папка с проектом 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 представляет собой еще один ценный инструмент в руках разработчика, в дальнейшем мы постараемся осветить и другие аспекты работы с ним.

    Spandownloadcloud140: Страницы

    • Страницы

    Скачать Python Интерпретатор

    Python 3 для начинающих

    Сегодня я решил что-нибудь написать на python. Что-нибудь простенькое, но не очень. Решил остановиться на интерпретаторе brainfuck. Для тех, кто не знает, о чем это я говорю, поясняю: язык brainfuck для хранения данных использует ячейки (по-хорошему бесконечное число ячеек) и состоит всего из восьми команд, поэтому выучить его будет легко.

    Python Интерпретатор Для Windows
    • Установка Python сильно отличается в зависимости от используемой платформы, но, вообще, это довольно простая задача.
    • PyPy — это интерпретатор языка программирования Python, который написан на Python и может компилировать сам себя.
    • Интерпретатор Python после установки располагается, обычно, по пути На машинах с ОС Windows, инсталляция Python обычно осуществляется в.
    • Скачать и установить Python 3 для Windows и Linux (бесплатно). Кстати, не рекомендую скачивать интерпретатор python с других.

    )[править | править вики-текст]. Основная статья: Global Interpreter Lock. GIL ( Global.

    Python Интерпретатор Скачать

    Интерпретатор Python

    Интерпретатор Python

    Язык программирования Python имеет свой интерпретатор. Давайте разберемся, что называют этим сложным и непонятным словом. Для этого представим себе самого себя и стоящий напротив персональный компьютер, в состав программного обеспечения которого входит интерпретатор Python.

    Наша задача – заставить компьютер правильно и быстро выполнять все ваши команды. До изобретения интерпретатора, это могли сделать только люди, обладающие недюжим умом и отличной памятью.

    Например, чтобы заставить электронно-вычислительную машину отобразить букву «А» необходимо было задать команду, состоящую из определенного количества нулей и единиц. 01110101. Далее, чтобы получить символ «Б», задаем команду 111000111. Только представьте, сколько цифр приходилось запоминать, чтобы напечатать одно слово! Слишком долго и трудно, – скажете вы. Совершенно верно. Именно в таком случае нам на помощь приходит интерпретатор, который преобразует буквы в числовые бит-коды, понятные компьютеру .

    Можно смело сказать, что интерпретатор является посредником или переводчиком между вами и вашим устройством. Это позволяет нам видеть язык в виде инструкций, которые интерпретатор переводит в символы.

    Давайте запустим интерпретатор, а точнее его графическое отображение. Для этого в Windows нажмем меню «Пуск» -> «Все программы», далее найдем Python. Нажимаем левой кнопкой мыши на имя программы и запускаем «Python GUI» или «IDLE» (Mac OS).

    Итак, открываем Python и в появившемся окне, напоминающем стандартный блокнот. Вводим инструкцию print 3 и нажимаем Enter. print переводится как «напечатать» или «вывести».
    Что мы видим?
    Яркая красная строка говорит нам: SyntaxError: invalid syntax .

    В этом и есть принципиальное отличие питона от других языков программирования. Он не работает, если вы допускаете хотя бы какие-то ошибки. Python указывает на конкретную проблему и при этом не продолжает работу. Для сравнения пишем print(3) и нажимаем Enter .
    Python выводит цифру 3.

    У нас получилось, мы сделали действие, которое хотели увидеть. Это и есть программирование.

    На первый взгляд, это довольно примитивно. Однако это наша первая самостоятельно написанная инструкция. Все самые сложные программы состоят из предельно простых компонентов. Язык программирования Python прекрасен тем, что он очень простой и легкий для запоминания. Изучив несколько простых коротких инструкций, вы сможете собирать сложнейшие комбинации, которым позавидует даже опытный программист.

    Теперь давайте рассмотрим, что же такое инструкция. По сути дела, это простой текстовый файл. На рабочем столе создаем текстовый документ и нажмем правой кнопкой переименовать. После точки вместо txt пишем английскими буквами «py» (пай). Теперь наш файл имеет новое расширение и считается питоновским. При помощи документов с этим расширением мы будем писать программы на Python.

    Подведем краткие итоги этого урока:

    • мы узнали что такое интерпретатор;
    • разобрались с тем, как он работает;
    • изучили его графическую оболочку;
    • научились создавать первую инструкцию;
    • рассмотрели новое расширение текстового файла «py» (пай) .

    Чтобы узнать разницу между интерактивным и сценарным режимом программирования читайте здесь .

    Читателям также нравится:

    PROGEORU: Python for windows

    Python for windows. Питон для виндоуз. Winpython

    Цель. Разобраться в азах языка программирования Питона
    Методы. WinPython, python, numpy, scipy, matplotlib, basemap
    Задачи :
    1) Установить на windows Питон;
    2) разобраться в основных модулях Питона, которые необходимы для построения "научного конвейера";
    3) "Научный конвейер". На примере реанализа NCEP/NCAR разобрать полный цикл обработки гидрометеорологических и океанологических данных: от чтения netcdf файла до рисования карты, пригодной для презентации/публикации.

    Хочу предложить читателям моего блога взглянуть на язык программирования Питон/Python. Недавно я начал активно использовать его для решения своих научных задач (построение карт различных метеорологических параметров по данным различных реанализов в формате netcdf). Python позволяет легко читать netcdf формат, что для пользователей windows очень актуально. Ncdump, конечно, хорош, но требует всё равно постобработки. К тому же большие файлы (а таких в научных задачах большинство) он "жуёт" плохо. Установить же библиотеку netcdf на windows, как я понимаю, задача достойная эпитета "эпическая".
    А вот Питон/Python работает с netcdf легко и непринуждённо! К тому же сейчас для Питона написаны и свободно распространяются модули, которые позволяют создавать графику, в том числе и географические карты, очень высокого класса. Таким образом, с помощью Питона можно создать конвейер полного цикла по производству научной продукции (чтение данных, обработка и преобразование данных, анализ данных, графическое представление результатов).
    Конечно, у Питона есть и недостатки. Но о них мы поговорим как-нибудь потом. А теперь перейдём к решению поставленных задач.

    Для начала нам нужен интерпретатор Питона. Можно скачать его с официального сайта. У Питона есть две ветви развития: вторая (Python 2.*) и третья (Python 3.*). Если кратко, то они отличаются синтаксисом некоторых основных функций интерпретатора Питона. Я буду писать о Python 3.*, который является Питона будущего поколения. Если интересно чем они отличаются, то вам сюда (англ.).
    Скачав "Python 3.3.2 Windows X86-64 MSI Installer" вы получите стандартный интерпретатор Питона. В установочный пакет входит среда разработки IDLE, которая отличается незатейливостью и простой. На данном этапе вы получите "моторчик", основной блок, ядро, с помощью которого вы сможете создать первую тестовую программу "Hello, World!".
    Для естественно-научной работы необходимы дополнительные пакеты-модули. Их несколько: numpy, scipy, matplotlib, basemap. Это необходимый минимум. Чтобы поставить их на windows, необходимо найти собранные для windows установочные пакеты. Обратите внимание на то, что одновременно должны совпадать архитектура (32 или 64), ветка Питона (2.* или 3.*) и текущая версия (3.2.* и 2.6.*, например) дополнительного пакета и интерпретатора. Совет: по умолчанию качайте пакеты и интерпретатор для 32-х разрядных систем. Как показывает практика, все вкусные пакеты появляются сначала для x32, а затем, может быть, выходят и для x64. А часто и не выходят. Скачать эти модули можно по этим ссылкам: Scipy. Numpy. Matplotlib. Basemap. После загрузки их нужно установить. Здесь всё просто, ошибиться невозможно. Если всё же вышла ошибка проверьте на совпадение "реквизиты" интерпретатора и устанавливаемого пакета.
    Таким образом, необходимо вручную искать, скачивать дополнительные модули и устанавливать их на ядро-интерпретатор Питона. Недавно я обнаружил на сайте SciPy альтернативные сборки интерпретатора Питона. Они также есть и на python.org (Alternative Implementations). Они включают в себя много всяческих примочек (среда разработки, предустановленные модули, дополнительные возможности). Я попробовал несколько и остановился на WinPython. Скачиваем, устанавливаем и запускаем среду разработки Spyder.
    В окне Console (справа внизу) появится сообщение-приглашение:

    Imported NumPy 1.7.1, SciPy 0.12.0, Matplotlib 1.3.0 + guidata 1.6.1, guiqwt 2.3.1
    Type "scientific" for more details.

    >>> scientific
    This is a standard Python interpreter with preloaded tools for scientific
    computing and visualization:

    >>> import numpy as np # NumPy (multidimensional arrays, linear algebra. )
    >>> import scipy as sp # SciPy (signal and image processing library)

    >>> import matplotlib as mpl # Matplotlib (2D/3D plotting library)
    >>> import matplotlib.pyplot as plt # Matplotlib's pyplot: MATLAB-like syntax
    >>> from pylab import * # Matplotlib's pylab interface
    >>> ion() # Turned on Matplotlib's interactive mode

    >>> import guidata # GUI generation for easy dataset editing and display

    >>> import guiqwt # Efficient 2D data-plotting features
    >>> import guiqwt.pyplot as plt_ # guiqwt's pyplot: MATLAB-like syntax
    >>> plt_.ion() # Turned on guiqwt's interactive mode

    Within Spyder, this interpreter also provides:
    * special commands (e.g. %ls, %pwd, %clear)
    * system commands, i.e. all commands starting with '!' are subprocessed
    (e.g. dir on Windows or !ls on Linux, and so on)

    То есть мало того, что нам не нужно искать и скачивать три пакета из четырёх, так они ещё и автоматически импортированы для удобства написания кода! Здорово! Однако последний пакет, который отвечает за рисование географических данных, не входит в эту сборку. Значит нужно скачать его и установить самостоятельно. Идём в Basemap и скачиваем установочный пакет для windows. Теперь его нужно установить в WinPython.

    Установка пакетов для WinPython

    Если просто запустить исполняемый файл, то возникнет ошибка - он будет искать стандартный интерпретатор Питона. установку которого мы рассмотрели выше. Для корректной установки модуля Basemap в WinPython, нужно запустить утилиту wpcp, которая находится в папке *\WinPython-64bit-3.3.2.2\scripts. Запустится оконное приложение, где нажав кнопку "add package" нужно выбрать скачанный установочный пакет. Завершите установку, нажав "Install package". Так можно устанавливать собранные для windows пакеты-модули в WinPython.


    II. Обзор основных пакетов-модулей python для научной работы

    Установив WinPython-64bit-3.3.2.2, например, и модуль Basemap, мы получили следующее:

    1) интерпретатор питона - python.exe (*\WinPython-64bit-3.3.2.2\python-3.3.2.amd64\)

    3) редактор Spyder

    Хорошую шпаргалку по осям numpy можно найти здесь .

    Для новичков :
    Функция len(имяобъекта) независима от имяобъекта и стоит выше него. Она заключает его в скобки. А вот метод имяобъекта.shape "проявляется" только после указания объекта (в нашем случае это массив "a"). Shape - это метод класса numpy.ndarray, то есть способность массива. Поэтому метод указывается после точки. Пример: машина - это класс. Цвет - метод машины. Оттенок - метод цвета. Чтобы получить название оттенка цвета машины, которую мы сейчас представили, согласно логике ООП и питона написать следующее:


    Если нужно что-то поменять в массиве по условию, то это легко сделать с помощью where (numpy.where):

    >>> a = np.arange(10)
    >>> a
    array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
    >>> ii = np.where((a >= 2) & (a < 8))
    >>> ii
    (array([2, 3, 4, 5, 6, 7], dtype=int64),)
    >>> a[ii] = a[ii] - 273
    >>> a
    array([ 0, 1, -271, -270, -269, -268, -267, -266, 8, 9])

    ii - массив индексов, которые удовлетворили логическому условию в where.

    2. Scipy . Это библиотека (модуль с большим числом функций) математических алгоритмов и удобных функций, базирующихся на модуле Numpy. Я уже кратко показывал возможности scipy для определения квантилей. Именно через модуль scipy можно работать с файлами формата netcdf. Покажу на простом примере. Скачаем данные реанализа NCEP/NCAR. Пусть это будет файл с данные многолетнего среднемесячного приземного давления (pres.mon.ltm.nc). Загружаем файл в папку, где мы сохраним файл питоновского кода.


    Для новичков:
    # - однострочный комментарий
    '''
    Всё что между тройными кавычками - многострочный комментарий
    '''

    Итак, код с комментариями.

    # ------------------ Scipy 1 ---------------------------------------
    from scipy.io import netcdf as nc # подключаем выбранный модуль netcdf из модуля scipy.io

    fname = 'pres.mon.ltm' # имя файла
    f = nc.netcdf_file(fname+'.nc') # открываем файл и получим f - идентификатор открытого файла
    fkeys = list(f.variables.keys()) # Преобразуем в список кортеж имён переменных, содержащихся в файле
    print(fkeys) # печатаем список переменных (для ветки python 2. скобки не нужны)
    ['time', 'valid_yr_count', 'lat', 'pres', 'lon', 'climatology_bounds']
    '''
    Определяем массивы времени, долгот, широт, давления.
    Причём широты и данные по широтам считываем задом наперёд, то есть в обратном направлении: от -90 до 90 (изначально в реанализе они уложены от 90 до -90).
    Это нужно для беспроблемного рисования карт с помощью модуля basemap.
    '''
    t = f.variables['time'][:]
    x = f.variables['lon'][:]
    y = f.variables['lat'][:]
    v = f.variables['pres'][:]
    v1 = f.variables['pres']
    '''
    Массив v и объект v разные. V - это данные, а v1 позволяет узнать коэффициент масштаба и добавочный коэффициент. Преобразовать массив v в нормальные значения можно так
    "''
    v = v*v1.scale_factor + v1.add_offset

    f.close() # Закрываем файл

    from scipy.io import netcdf as nc

    fname = 'pres.mon.ltm'
    f = nc.netcdf_file(fname+'.nc')
    fkeys = list(f.variables.keys())
    print(fkeys)

    t = f.variables['time'][:]
    x = f.variables['lon'][:]
    y = f.variables['lat'][:]
    z = f.variables['climatology_bounds'][:]
    v = f.variables['pres'][:]
    v1 = f.variables['pres']

    v = v*v1.scale_factor + v1.add_offset

    3. Matplotlib . Это графический модуль, который позволяет строить как простые двумерных графики, так и трёхмерные изображение и даже географические карты.
    Введение в matplotlib на русском разобрано здесь и у Колдунова. Для примера нарисуем график "роза ветров" (wind rose). Будем рисовать его в полярной проекции.

    from math import pi
    import numpy as np
    import matplotlib.pyplot as plt

    angles = np.arange(0,2*pi,pi/4.0) # Задаём массив направлений
    r = np.random.random(len(angles)) #. и случайный массив значений

    fig = plt.figure() # Создаём новое полотно, на котором будем рисовать
    ax = fig.add_subplot(111, projection='polar') # ax - полотно в полярной проекции, занимающее
    # всё пространство полотно fig

    # Рисуем график и его название
    ax.plot(angles, r, color='r', linewidth=1.)
    ax.set_title("Wind rose", va='bottom')
    plt.show()

    Получаем следующее изображение:


    В глаза сразу бросается 90 градусов вверху графика. Также наша роза не является замкнутой. Необходимо привести это изображение в порядок. Для этого добавим следующие строчки в код:

    ax.set_theta_direction(-1) # теперь увеличение угла theta будет по часовой (-1 - увеличение угла
    # идёт против часовой стрелки)
    ax.set_theta_offset(pi/2.0) # изменим положение нуля (ставим его на положение 'N', которое
    # сейчас равно 90 градусам)

    ax.plot((angles[-1],angles[0]),(r[-1],r[0]), color='r', linewidth=1.) # Добавляем ещё один plot-линию,
    # которая соединяет последнюю и первую точки.

    Сохраняем получившийся рисунок в файл с расширением 'png' (можно и другой) с помощью


    Вот так намного лучше! А теперь выведем сразу две розы:

    #----------- Matplotlib 2-------------------------------------
    from math import pi
    import numpy as np
    import matplotlib.pyplot as plt

    angles = np.arange(0, 2*pi, pi/4.)

    fig = plt.figure(figsize=(10,5)) # зададим явно размер полотна, чтобы графики не перекрывались

    for i in range(1,3,1):

    r = np.random.random(len(angles)) # для каждой розы значения будут разные

    ax = fig.add_subplot(120+i, projection='polar')
    ax.plot(angles, r, color='r', linewidth=1.)
    ax.plot((angles[-1],angles[0]),(r[-1],r[0]), color='r', linewidth=1.)

    ax.set_title("Wind roses "+str(i), loc = 'center')

    Здесь мы использовали subplot - разбили наше полотно на таблицу. Вписывать график мы будем уже в ячейку таблицы. Схема таблицы следующая:

    ax = fig.add_subplot(121 . projection='polar')
    121 - rcn: r = 1, c = 2, n = 1
    r - число строк в таблице
    c - число столбцов в таблице
    n - номер ячейки в получившейся таблице

    Тогда, чтобы нарисовать графики друг под другом нужно будет задать значения для subplot 211 и 212. В приведенном выше коде этот номер изменяется с помощью переменной цикла i.

    4. Basemap. Это дополнение к matplotlib, которое позволяет рисовать географические карты. Основу работы basemap составляет картографическая проекция, на которой будет изображаться то или иное поле. Разберём основные возможности Basemap на примере данных давления из реанализа NCEP/NCAR, которые мы обрабатывали в обзоре Scipy.

    С помощью модуля basemap мы импортируем из 'mpl_toolkits.basemap' класс Basemap .

    from mpl_toolkits.basemap import Basemap


    Зададим в качестве основы проекцию Миллера. Всего на выбор доступно более 30 проекций. Нарисуем карту земного шара в цилиндрической проекции, которой является проекция Миллера.


    import numpy as np

    import matplotlib.pyplot as plt

    from mpl_toolkits.basemap import Basemap

    m.drawcoastlines(linewidth=1) # Рисуем береговую линию
    m.drawcountries(linewidth=0.5) # Рисуем границы стран
    m.drawmapboundary() # Рисуем рамку вокруг карты

    # Рисуем географическую сетку (долготы и широты)

    parallels = np.arange(-90,90+1,30)
    meridians = np.arange(0,360+1,60)
    m.drawparallels(parallels,labels=[True,True,True,True])
    m.drawmeridians(meridians,labels=[True,False,False,True])


    Раскрасим карту и добавим реки на карту:

    m.drawmapboundary(fill_color='aqua') # Делаем заливку океана голубым цветом
    m.fillcontinents(color='orange',lake_color='green') # Красим континенты в оранжевый,
    # а озера - в зелёный.

    m.drawrivers() # Добавляем реки


    За дополнительными возможностями по рисованию картографической основы - сюда. Разобравшись с основами, перейдём к отображению информации на карте.

    from scipy.io import netcdf as nc

    import numpy as np
    import matplotlib.pyplot as plt

    from mpl_toolkits.basemap import Basemap

    fname = 'pres.mon.ltm.nc'
    f = nc.netcdf_file(fname)
    fkeys = list(f.variables.keys())
    print(fkeys)

    t = f.variables['time'][:]
    x = f.variables['lon'][:]
    y = f.variables['lat'][:]
    v = f.variables['pres'][:]
    v1 = f.variables['pres']

    v = v*v1.scale_factor + v1.add_offset

    m.drawcoastlines(linewidth=1)
    m.drawcountries(linewidth=0.5)
    m.drawmapboundary()

    parallels = np.arange(-90,90+1,30)
    meridians = np.arange(0,360+1,60)
    m.drawparallels(parallels,labels=[True,True,True,True])
    m.drawmeridians(meridians,labels=[True,False,False,True])

    # Данные по широтам и долготам, взятые из netcdf файла необходимо перевести из векторов
    # в матрицы. Делается это с помощью функции meshgrid
    x1,y1 = np.meshgrid(x,y)
    lons,lats = m(x1,y1) # задаем на картографической основе преобразованные в матрицы
    # координаты

    '''
    Другой синтаксис перевода координат x и y в координаты, понятные карт. основе


    m.contourf(lons,lats,v[1. ],40) # Рисуем на картографической основе m данные за февраль
    # contourf рисует изолинии с послойной окраской через 40 единиц по сеточным данным
    # Массив v[1. ] - срез от всего массива v, представляющий данные за один месяц февраль
    plt.title('Test map N') # Название карты

    Запускаем скрипт и получаем. вот это!

    Что-то явно было сделано с ошибками. По порядку:

    1) Нарисовано только половина карты!
    2) Непонятные белые полосы сверху и снизу карты!

    Начнём с главного. Код рисует половину карты потому что данная проекция рассчитана на изменение долгот в пределах от -180 до 180, а в наших данных реанализа долготы изменяются в других пределах, а именно от 0 до 357.5:


    [ 90. 87.5 85. 82.5 80. 77.5 75. 72.5 70. 67.5 65. 62.5
    60. 57.5 55. 52.5 50. 47.5 45. 42.5 40. 37.5 35. 32.5
    30. 27.5 25. 22.5 20. 17.5 15. 12.5 10. 7.5 5. 2.5
    0. -2.5 -5. -7.5 -10. -12.5 -15. -17.5 -20. -22.5 -25. -27.5
    -30. -32.5 -35. -37.5 -40. -42.5 -45. -47.5 -50. -52.5 -55. -57.5
    -60. -62.5 -65. -67.5 -70. -72.5 -75. -77.5 -80. -82.5 -85. -87.5
    -90. ] [ 0. 2.5 5. 7.5 10. 12.5 15. 17.5 20. 22.5
    25. 27.5 30. 32.5 35. 37.5 40. 42.5 45. 47.5
    50. 52.5 55. 57.5 60. 62.5 65. 67.5 70. 72.5
    75. 77.5 80. 82.5 85. 87.5 90. 92.5 95. 97.5
    100. 102.5 105. 107.5 110. 112.5 115. 117.5 120. 122.5
    125. 127.5 130. 132.5 135. 137.5 140. 142.5 145. 147.5
    150. 152.5 155. 157.5 160. 162.5 165. 167.5 170. 172.5
    175. 177.5 180. 182.5 185. 187.5 190. 192.5 195. 197.5
    200. 202.5 205. 207.5 210. 212.5 215. 217.5 220. 222.5
    225. 227.5 230. 232.5 235. 237.5 240. 242.5 245. 247.5
    250. 252.5 255. 257.5 260. 262.5 265. 267.5 270. 272.5
    275. 277.5 280. 282.5 285. 287.5 290. 292.5 295. 297.5
    300. 302.5 305. 307.5 310. 312.5 315. 317.5 320. 322.5
    325. 327.5 330. 332.5 335. 337.5 340. 342.5 345. 347.5
    350. 352.5 355. 357.5]

    Чтобы корректно отобразить данные необходимо перевести координаты. Это делается с помощью функции shiftgrid :

    import mpl_toolkits.basemap as mtb
    v[1. ],x = mtb.shiftgrid(180,v[1. ],x,start=False)

    lon0 = 180 - конец или начало нового вектора долгот (см. start).
    strat = False - заданная долгота lon0 (здесь равна 180) является концом нового вектора. Если True, то, соответственно, первым значением.


    Карта выглядит неплохо, но что за белые линии (white stripes) вверху и снизу? Это следствие того, что вектор широт у наших данных идёт от 90 до -90, то есть с севера на юг. Проекция же корректно отображает данные, когда значение широты идут наоборот: от -90 до 90, то есть возрастают.
    Чтобы наиболее безболезненно убрать этот дефект прочитаем данные задом наперед:


    y = f.variables['lat'][::-1]
    v = f.variables['pres'][. -1,:]

    Для переменной v широты являются второй осью, поэтому конструкцию '::-1' нужно ставить туда.

    Если приглядеться, то справа, в районе 180 градуса восточной долготы, заметна белая полосочка. Этот эффект есть разрыв данных на границе -180 и 180, что на самом деле есть одна долгота. На цилиндрической проекции это не очень заметно, но вот на другой:


    Здесь. в новой проекции, есть отличие от цилиндрических проекций, где задаются границы прямоугольника, lon_0 и lat_0 ( они задают координату центральной точки обзора).

    Чтобы убрать этот разрыв есть специальная функция addcyclic :

    from mpl_toolkits.basemap import addcyclic
    v,x = addcyclic(v,x)

    НО! В текущей версии эта функция работает только, если массив v - матрица, то есть имеет две оси. Так если вектор x имеет форму x.shape = (144,), то v.shape должен быть (n, 144).
    В нашем случае это не так, у массива v есть третья ось. v.shape = (n, 144, 73).
    На форуме я нашёл, как расширить возможности функции addcyclic.

    Необходимо заменить строчки 4977-4998 в файле, который содержит код функции addcyclic. Пусть к файлу выглядит примерно так:

    Spyder при запуске кода с базовой версией addcyclic выдаст ошибку, и можно будет щелкнуть по гиперссылке, чтобы этот файл открылся прям в Spyder. Ошибка будет такая:

    File "C:\WinPython-64bit-3.3.2.2\python-3.3.2.amd64\lib\site-ackages\mpl_toolkits\basemap\__init__.py", line 4997, in addcyclic

    Нужно заменить функцию addcyclic на новую:

    """
    ``arrout, lonsout = addcyclic(arrin, lonsin)``
    adds cyclic (wraparound) point in longitude to ``arrin`` and ``lonsin``,
    assumes longitude is the right-most dimension of ``arrin``.
    """

    nlons = arrin.shape[-1]
    newshape = list(arrin.shape)
    newshape[-1] += 1

    if ma.isMA(arrin):
    arrout = ma.zeros(newshape,arrin.dtype)
    else:
    arrout = np.zeros(newshape,arrin.dtype)

    arrout[. 0:nlons] = arrin[:]
    arrout[. nlons] = arrin[. 0]

    if ma.isMA(lonsin):
    lonsout = ma.zeros(nlons+1,lonsin.dtype)
    else:
    lonsout = np.zeros(nlons+1,lonsin.dtype)

    lonsout[0:nlons] = lonsin[:]
    lonsout[nlons] = lonsin[-1] + lonsin[1]-lonsin[0]
    return arrout,lonsout


    Теперь addcyclic будет работать с n-мерными массивами. Правда ограничения на форму массивов всё же остались. Вектор, который будет замыкаться (x здесь) должен быть ПОСЛЕДНЕЙ осью вектора v. То есть (12,73,144) можно, а (12,144,73) нельзя замыкать с вектором x(144,). В нашем случае привнесенных изменений достаточно. Рисуем:

    Осталось добавить цветовую шкалу.

    cs = m.contourf(lons,lats,v[1. ],50)
    cbar = plt.colorbar(cs,orientation = 'horizontal')
    cbar.set_label('SLP, hPa')

    или так, задав пользовательские границы изолиний и шкалы:

    levels = (500,700,800,900,925,950,960,970,980,990,1000,1010,1020,1030,1040,1050,1100)
    cs = m.contourf(lons,lats,v[1. ],levels)
    cbar = plt.colorbar(cs,ticks=levels,orientation = 'horizontal')
    cbar.set_label('SLP, hPa')

    И весь код целиком:

    import mpl_toolkits.basemap as mtb
    from scipy.io import netcdf as nc
    import numpy as np
    import matplotlib.pyplot as plt

    from mpl_toolkits.basemap import Basemap,addcyclic

    fname = 'pres.mon.ltm.nc'
    f = nc.netcdf_file(fname)
    fkeys = list(f.variables.keys())
    print(fkeys)

    t = f.variables['time'][:]
    x = f.variables['lon'][:]
    y = f.variables['lat'][::-1]
    v = f.variables['pres'][. -1,:]
    v1 = f.variables['pres']

    v = v*v1.scale_factor + v1.add_offset
    v,x = addcyclic(v,x)

    m = Basemap(projection='mill')
    v[1. ],x = mtb.shiftgrid(180,v[1. ],x,start=False)

    m.drawcoastlines(linewidth=1)
    m.drawcountries(linewidth=0.5)
    m.drawmapboundary()

    parallels = np.arange(-90,90+1,30)
    meridians = np.arange(0,360+1,60)
    m.drawparallels(parallels,labels=[True,True,True,True])
    m.drawmeridians(meridians,labels=[True,False,False,True])

    x1,y1 = np.meshgrid(x,y)
    lons,lats = m(x1,y1)

    cs = m.contourf(lons,lats,v[1. ],50)
    cbar = plt.colorbar(cs,orientation = 'horizontal')
    cbar.set_label('SLP, hPa')

    plt.title('Test pressure [hPa] map')
    plt.savefig('Test_basemap_map.png')