ПО для программирования Wing

Обновлено: 05.07.2024

Это руководство поможет вам очень быстро начать программировать на Python. Мы будем учиться в приложении "Wing IDE", которое значительно упрощает разработку Python по сравнению со стандартной средой IDLE (подробнее о IDLE позже).

2. Начало работы

2.1 Подготовка

  1. Во-первых, убедитесь, что на всех компьютерах, которые вы будете использовать, установлено последнее обновление антивирусного программного обеспечения.
  2. Создайте папку ProjectsPython в корневом каталоге диска, который вы будете использовать для занятий. Он должен быть на вашем компьютере или на карте памяти, чтобы вы всегда могли держать его при себе.
  3. Не забывайте создавать резервную копию папки не реже одного раза в неделю, чтобы не потерять свою работу!

2.2 Проверка наличия Python

Если вы установили ArcGIS 10 или более позднюю версию, на вашем компьютере уже должен быть установлен Python. Если у вас не установлен ArcGIS, следуйте приведенным ниже инструкциям, чтобы установить Python.

  1. Перейдите на веб-сайт Python по адресу "Python.org"
  2. Нажмите "Скачать"
  3. Вы увидите, что существует несколько версий Python и установщиков для самых разных операционных систем. Эта книга была написана с использованием Python 2.6, поскольку вариант этой версии входит в состав ArcGIS. Вы также можете использовать Python 3.0, если хотите, так как в этой книге будут использоваться синтаксис и функции Python, общие для обеих версий, и будут указаны различия (см. html) для получения дополнительной информации.
  4. Нажмите на ссылку Python 2.7 или Python 3.0 и загрузите программу установки, подходящую для вашего компьютера. Если у вас 64-разрядный компьютер, рекомендуется установить 64-разрядную версию Python.
  5. Инструкции по установке Python будут различаться в зависимости от вашей операционной системы, но им довольно легко следовать, и вы сможете просто «щелкнуть мышью», используя настройки по умолчанию.
  6. Python обычно устанавливается в папку на "корневом" диске ("C:/Python27" или "C:/Python 31" в MS-Windows). Это стандарт, и Wingware будет искать Python при запуске. Если у вас установлен ArcGIS, папка уже должна быть установлена ​​в "C:/Python26".

Примечание: ArcGIS устанавливает пользовательскую версию Python, которая имеет некоторые проблемы совместимости с библиотеками Python. Мы поговорим об этом позже.

2.3 Установка Wing IDE

Некоторые разработчики Python пишут свои программы целиком в интерфейсе командной строки или в одной из простых интегрированных сред разработки (IDE), таких как IDLE. Использование полнофункциональной IDE, такой как Wing, значительно упрощает написание и особенно отладку программ Python для начинающих программистов, поэтому Wing используется в этой книге. Существуют и другие полнофункциональные IDE, такие как Eclipse, которые можно использовать для написания Python. Однако эти IDE обычно намного сложнее, чем Wing, поэтому их рекомендуется использовать только в том случае, если у вас есть опыт их использования.

  1. Перейдите на веб-сайт Wingware.
  2. Нажмите "Wing IDE Personal". Персональная версия содержит все функции, о которых мы поговорим в этой книге, она очень недорогая, и вы можете получить студенческую версию от Wingware для использования во время обучения. Существует также версия «101», которая является бесплатной, но не включает функцию «автозаполнения». Также существует «Профессиональная» версия, которая включает дополнительные функции для совместной работы команд над программами. Эта версия более дорогая, и мы не будем рассматривать ее функции в этой книге. Несмотря на это, для всех версий предоставляется 30-дневная бесплатная пробная версия, которую вы можете использовать во время обучения.
  3. Выберите версию, соответствующую вашей операционной системе, и следуйте инструкциям по установке.

Примечание. Вам понадобится по крайней мере персональная версия Wingware IDE, чтобы видеть функции, доступные в ArcGIS и других пакетах, по мере ввода. Это называется "завершение кода".

2.4 Запуск среды разработки Wing

Запустите Wing IDE прямо сейчас. Вероятно, вы получите сообщение с просьбой либо ввести лицензию, либо продолжить пробную версию. Если вы приобрели лицензию, вы можете зарегистрировать ее сейчас. В противном случае продолжайте использовать пробную версию. Вы также можете увидеть «подсказки». Это может быть полезно, когда вы будете работать с Wing позже, но сейчас просто закройте эти диалоговые окна.

Осмотрите интерфейс и обратите внимание на расположение элементов, указанных на рис. 1.


Рис. 1. Интерфейс приложения Wing IDE с указанием первых панелей, которые вы будете использовать.

3. Ваш первый проект

Начнем с создания нового файла для распечатки информации.

  1. Нажмите на меню "Файл" и выберите "Создать".
  2. При этом будет создан новый пустой файл с меткой вроде "untitled-2.py" ("py" означает "Python")
  3. Новый файл должен открыться в «панели редактирования» с мигающим курсором в левом верхнем углу. Введите в точности следующую строку кода и нажмите "Enter" в конце:
    1. В левом верхнем углу окна вы должны увидеть зеленую стрелку, похожую на ту, которая может появиться на проигрывателе DVD или CD. Это кнопка «воспроизведение» или «запустить», и она запустит вашу программу. Нажмите на зеленую стрелку сейчас.
    2. Появится диалоговое окно «Отладка». Этот диалог сейчас нам не нужен, поэтому снимите флажок "Показывать этот диалог перед каждым запуском" и нажмите "ОК".
    3. Появится другое диалоговое окно с вопросом, хотите ли вы сохранить файл. Нажмите «Сохранить выбранные файлы» в этом диалоговом окне, чтобы удалить его. Сохраните файл в папке "D:/TempData//Lab1/" с подходящим именем, например "Learning1.py".
    4. Ваша программа должна запуститься, и вы должны увидеть "Hello World" на панели "Отладка ввода-вывода" в центре нижней части IDE.


    Предупреждение. Компьютеры — это всего лишь машины, и они будут делать именно то, что вы им говорите. К сожалению, это означает, что вы должны быть очень точными в том, что вы им говорите, иначе они сделают то, чего вы не хотите. Вы быстро к этому привыкнете, но сейчас вам нужно двигаться медленно и осторожно — не забегайте вперед, иначе у вас начнутся ошибки программирования, и вы будете разочарованы.

    Вы только что использовали функцию "print()", чтобы записать "строку" текста на панель ввода/вывода отладки. Это очень мощный способ увидеть, что делают ваши программы, и вы будете часто использовать функцию print(). На данный момент вы можете ввести все, что хотите, между кавычками внутри скобок и увидеть, как это будет напечатано. Попробуйте некоторые из приведенных ниже примеров, а затем придумайте не менее 5 своих собственных. Измените текст в функции печати, нажмите кнопку «Выполнить» и убедитесь, что вы видите вывод на панели «Отладка ввода-вывода».

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

    4. Дополнительные типы данных

    Теперь вы распечатали некоторые "строки". Строки — это последовательности «символов», которые поступают с клавиатуры на компьютер по мере того, как вы их печатаете. Строки используются для ввода текста в программы и вывода текста из программ. Python сам по себе является «текстовым» языком, который интерпретатор Python (другая программа) преобразует в язык, понятный компьютеру (прикольно, а?). Существует ряд других типов данных, а также более сложные структуры, объединяющие эти типы данных.

    4.1 Целые числа и арифметика

    Введите следующее и нажмите "Выполнить":

    Вы должны увидеть цифру 4 на панели ввода/вывода отладки. Python позволяет нам выполнять широкий спектр математических операций, просто вводя их. Знаки плюс ("+") и минус ("-") предназначены для сложения и вычитания. Звездочка («*») используется для умножения, а обратная косая черта («/») — для деления. Попробуйте следующее, а затем попробуйте свои собственные:

    Все эти числа являются целыми значениями или значениями, не содержащими ничего после запятой.

    4.2 Числа с плавающей запятой

    Числа с плавающей запятой позволяют нам иметь дробные значения. Попробуйте следующее, а затем попробуйте свои собственные.

    4.3 Использование отладчика времени выполнения

    Wing включает в себя мощный инструмент для отладки программ и отличный инструмент для изучения программирования.

    В левой части окна редактора вы увидите две серые полосы. Нажмите рядом с одной из строк кода и на панели слева, как показано ниже.

    TBD< бр />

    Теперь запустите вашу программу, и должна появиться красная полоса, как показано ниже.

    TBD< бр />

    Это указывает на то, что среда IDE "остановила выполнение" в строке, где вы разместили точку останова. Обратите внимание, что окно «Отладка ввода-вывода» пусто, потому что строка еще не выполнена. Нажмите кнопку запуска еще раз, чтобы завершить работу программы.

    4.4 Переменные

    Переменные — это то, как мы храним значения в программе. Python — это «нетипизированный» язык, что означает, что в нем очень легко создавать переменные. Например, попробуйте:

    Теперь, когда мы можем объявлять переменные, мы можем выполнять над ними операции, а затем распечатывать результаты. Попробуйте:

    Мы будем использовать переменные почти во всех наших сценариях, поэтому потратьте некоторое время на создание различных переменных и выполнение простых арифметических действий. Стандартные символы работают в том числе; +, -, *, / и ^.

    Имена переменных должны начинаться с символа (a-z или A-Z) и не могут содержать никаких знаков препинания, кроме подчеркивания.

    4.5 Наблюдение за созданием и изменением переменных

    Введите пару строк арифметических операций и установите точку останова в первой строке, как показано в окне ниже.


    Нажмите кнопку запуска, а затем взгляните на вкладку "Данные стека" в левом нижнем углу окна. Вы увидите две записи в «дереве», помеченные как «местные» и «глобальные». Если они не «открыты», щелкните знак «плюс» слева от меток. И в «local», и в «globals» вы должны увидеть записи для «__doc__», «__file__» и «__name__». Пока не беспокойтесь об этих записях.

    Обратите внимание, что хотя выполнение вашей программы было "приостановлено" точкой останова, в IDE добавлены дополнительные кнопки. Три из них позволяют вам «пошагово» пройти через вашу программу, строка за строкой. Нажмите кнопку в середине обведенных ниже кнопок, чтобы «пошагово» выполнить одну строку вашей программы. Та, что посередине, называется «кнопка перехода». Остальные кнопки мы рассмотрим чуть позже, когда узнаем о функциях.

    Красная полоса, показывающая следующую строку для выполнения, должна переместиться на следующую строку. Это означает, что Wing выполнил одну строку вашей программы. Теперь взгляните на вкладку «Данные стека» и посмотрите, не было ли что-нибудь добавлено. Вы должны увидеть, что ваша первая переменная появится в столбце «Переменная» слева, а значение, которое вы установили для нее, — в столбце «Значения». Еще один шаг, чтобы увидеть, как появляется вторая переменная, и так далее.


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

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

    5. Ошибки

    Как мы упоминали ранее, компьютеры — это просто машины, и если мы допустим ошибку в синтаксисе наших скриптов, IDE сообщит нам об этом. Введите в свой скрипт следующее и запустите его:

    В левом нижнем углу IDE вы должны увидеть текст, выделенный красным, и выбрать вкладку "Исключения". Ошибки в Python называются исключениями. Обратите внимание, что кроме указания номера строки, в которой произошла ошибка, сообщения об ошибках не очень полезны. Это довольно типично для ошибок интерпретаторов на всех языках. Добавьте недостающую скобку в конец функции «печать» и снова запустите программу. Исключение должно исчезнуть, но следите за ним в будущем и исправьте, прежде чем двигаться дальше.

    6. Комментарии

    Не менее важным, чем создаваемые нами сценарии, является документация, прилагаемая к сценариям. Если вы не добавите документацию, вы быстро обнаружите, что задаетесь вопросом, что же делают сценарии! Представьте, что произойдет, если вы не прокомментируете свой код и не вернетесь к нему в течение года или более. Вероятно, вам придется переписать сценарий с самого начала.

    7. Настройка Wing IDE

    Wing IDE изначально настроена на использование табуляции или пробелов для отступов. Вы захотите настроить его так, чтобы использовать только вкладки и сделать их по 4 пробела в каждой. Для этого:

    1. В Wing IDE выберите "Правка -> Настройки"
    2. Выберите категорию «Редактор -> Отступ».
    3. Установите для параметра "Стиль отступа по умолчанию" значение "Только вкладки".
    4. Установите для параметра "Размер вкладки по умолчанию" значение 4.

    Если вы не установите этот параметр, вы будете получать много сообщений о проблемах с табуляцией и пробелами. Даже если вы установите его, вы получите код от других разработчиков, который будет предупреждать вас о проблемах с табуляцией и пробелами. Чтобы исправить эти файлы, используйте «Диспетчер отступов» рядом с «Ассистент исходного кода» в Wing IDE, чтобы преобразовать все во вкладки с 4 пробелами.

    Wing IDE — это коммерческая интегрированная среда разработки для языка программирования Python. Wing предоставляет разработчикам полнофункциональный редактор исходного кода, отладчик, браузер кода и многие другие инструменты, специально разработанные для использования с Python. Wing работает со всеми формами Python, независимо от того, работает ли он как отдельное приложение, на веб-сервере или в настраиваемой встроенной среде сценариев. Поддерживаются несколько уровней графического интерфейса (wxPython, PyQt, PyGTK и Tkinter), а также Zope и mod_python для веб-разработки и pygame для разработки игр.

    На создание Wing в 1999 году нас вдохновил опыт использования Python наряду с другими технологиями. В то время мы работали консультантами, которым было поручено оценить ряд альтернатив многоуровневой веб-разработке. Некоторые из них были основаны на Java, а некоторые — на Visual Basic, MTS и ASP.Параллельно с этим мы использовали Python для прототипирования некоторых функциональных требований к разрабатываемым нами веб-приложениям для бизнеса.

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

    К сожалению, наш клиент никогда серьезно не рассматривал Python просто потому, что он не был основной технологией (а именно Java или Microsoft). Но нам было ясно, что Python мог бы обеспечить им значительную экономию средств и конкурентное преимущество, и мы увидели возможности для бизнеса, помогая другим организациям получить выгоду от использования Python.

    Работа над Wing IDE началась почти сразу, в середине 1999 года, сначала на условиях неполного рабочего дня. Мы поняли, что написать целую IDE будет непросто, и хотели быть уверены, что Python действительно так хорош, как нам казалось в то время. Логичным подходом к этому было разработать саму IDE на Python. Это дало бы нам подтверждение концепции и позволило бы нам стать первыми пользователями, когда мы начали разрабатывать и отлаживать IDE Wing самостоятельно.

    Wing IDE 1.1.7 в действии, самоотладка Увеличить

    Чтобы ускорить разработку и снизить затраты, мы решили использовать в основе Wing как можно больше модулей с открытым исходным кодом. Графический интерфейс был написан с помощью GTK, доступ к которому осуществляется из Python через PyGTK. Редактор исходного кода основан на Scintilla, компоненте редактора с открытым исходным кодом. А печать реализована через py2pdf от ReportLab.

    Первоначальная разработка велась для Linux, но мы планировали поддерживать как минимум Windows, а со временем и другие Unix-подобные операционные системы. По этой причине мы избегали реализации для конкретных платформ и выбрали кроссплатформенные технологии.

    Дополнительные инструменты разработки, использованные в проекте, включали gcc, Gnu make, latex, pdflatex, latex2html, emacs/xemacs (до появления Wing), Visual C++ 6 и cygwin.

    Наша работа над Wing IDE увенчалась успехом. Мы смогли разработать быстрее, чем мы первоначально ожидали, и предоставить Wing IDE для Linux, Windows 98 до XP, Mac OS X с XDarwin, Solaris и FreeBSD без серьезной разработки для конкретной платформы. Сегодня наш продукт получает хорошие отзывы и хорошо продается. Все это стало возможным без какого-либо внешнего финансирования и с командой разработчиков всего из двух человек.

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

    Производительность

    В ходе этого проекта нам удавалось писать в среднем более 175 строк отлаженного, задокументированного и протестированного кода на одного разработчика в день. За период в 660 дней FTE мы создали примерно 121 тысячу строк, из которых 77 тысяч были написаны на Python. Даже не принимая во внимание, что строка Python обычно эквивалентна 10 или более строкам C, мы были очень довольны этим результатом.

    Весь продукт, включая сторонние модули с открытым исходным кодом, на самом деле содержит порядка 1,2 миллиона строк кода, из которых 274 тыс. строк относятся к Python.

    Так почему же использование Python было таким продуктивным, даже если только 63 % кода, который мы написали, были написаны на Python? На этот вопрос нет единого ответа, а есть несколько:

    1) Простой синтаксис. Хотя использование отступов для обозначения структуры программы иногда отпугивает начинающих пользователей Python, снижение нагрузки на набор текста, связанное с отказом от <> и подобных синтаксических подсластителей, действительно имеет значение в процессе написания и написания. переписать сотни тысяч строк кода.

    2) Динамическая типизация данных высокого уровня. Отсутствие строгой типизации данных, еще одна часто упоминаемая «слабость» в Python, на практике является значительным преимуществом для большинства видов разработки программного обеспечения. Суть в том, что вам не нужна строгая типизация данных в контексте такого языка, как Python. Распространенные ошибки кодирования в любом случае перехватываются системой типов: вы по-прежнему не можете добавлять число к строке, ссылаться на конец массива или вызывать метод несуществующего класса. Динамическая высокоуровневая типизация данных сокращает объем вспомогательного кода и позволяет писать гибкий интроспективный код (подробнее об этом ниже).

    3) Мощные и простые в использовании структуры данных. Встроенные в Python структуры данных списка и словаря можно использовать в сочетании для создания практически любой быстрой структуры данных во время выполнения в одно мгновение. Это еще больше сокращает объем кода поддержки, который необходимо написать.

    4) Обширная стандартная библиотека. Python поставляется с обширной стандартной библиотекой, поддерживающей все, от обработки строк и регулярных выражений до синтаксического анализа и генерации XML, инструментов веб-служб и поддержки интернет-протокола. Многие распространенные задачи программирования уже встроены в стандартную библиотеку, что позволяет делать больше с меньшим количеством кода.Также доступны сторонние модули для доступа к базе данных, CORBA, COM, статистики, математики, обработки изображений и многого другого.

    5) Самоанализ. Гибкая система типизации данных Python распространяется также на документацию по коду, классы, методы и даже способ вызова методов. Python делает самоанализ чрезвычайно доступным для программиста, и, что примечательно, интроспективный код остается читабельным и удобным для сопровождения. Это может быть очень полезно при перенаправлении ввода-вывода в классы собственной разработки, написании трассировщика, определяющего покрытие кода, упаковке данных для хранения на диске или отправки по сети, разработке связующего кода, написании табличных алгоритмов, извлечении документации. из кода во время выполнения, применяя методы разработки по контракту и создавая различные типы метаклассов. Практически для каждой задачи программирования Python делает не только возможным, но и довольно простым создание метакода там, где в противном случае можно было бы создать кучу кода, написанного вручную.

    6) Ускоренная разработка и более глубокое прототипирование. Python увеличивает скорость разработки до такой степени, что прототипирование можно интегрировать в основной процесс разработки и чередовать с ним. Когда на опробование нового подхода к проблеме уходит всего полдня, а не неделя, как на C или C++, программисты чаще получают возможность переработать существующий несовершенный код и опробовать новые идеи. Это приводит к более быстрому внедрению опыта в дизайн приложения и повышению качества кода.

    Кроссплатформенное развертывание

    Wing IDE работает в различных операционных системах Posix и Windows. На протяжении всего процесса разработки мы были очень довольны тем, как Python работает на разных платформах. Один и тот же исходный код Python или скомпилированные файлы байт-кода Python могут быть отправлены клиентам независимо от целевой платформы, что значительно упрощает поддержку.

    Скорость, масштабируемость и стабильность

    Когда мы начали писать на Python, наш предыдущий опыт работы с компилируемыми языками навел нас на мысль, что мы потратим немало времени либо на оптимизацию кода, либо на его преобразование в C или C++ после того, как мы создадим его прототип. Как оказалось, в большинстве случаев Python создавал быстрый конечный продукт, не требующий дополнительной работы.

    Это произошло отчасти потому, что большая часть кода Python на самом деле представляет собой тонкий интерпретируемый слой поверх функциональности, написанной на C или C++. В нашем случае это включало не только быстрые встроенные структуры данных и стандартные библиотеки Python, но также большую часть уровня разработки GTK GUI и редактор исходного кода Scintilla.

    В ходе разработки и ответов на тысячи обращений в службу поддержки за трехлетний период мы ни разу не сталкивались с какими-либо серьезными проблемами с самим Python, ни с масштабируемостью, ни со стабильностью. Wing IDE может работать с программными проектами с тысячами файлов Python и во многих случаях может работать неделями без проблем. Насколько нам известно, мы еще не видели сбоев Wing IDE из-за недостатка в интерпретаторе Python или его стандартных библиотеках.

    Разработка на разных языках

    Python почти всегда достаточно быстр, но мы столкнулись с несколькими случаями, когда интерпретатор создавал слишком много накладных расходов. И отладчик Wing IDE, и механизм анализа исходного кода содержат модули, обрабатывающие чрезвычайно интенсивно ЦП. Эти модули нужно было написать на C, чтобы выжать как можно больше скорости. К счастью, Python спроектирован таким образом, чтобы можно было легко переключаться между Python и C или C++.

    В большинстве случаев мы сначала писали и отлаживали код на Python, а затем вручную преобразовывали его в C. Этот подход нам хорошо подошёл. Первоначально работа на Python была намного эффективнее, а процесс преобразования относительно безболезненным.

    Анализ наших записей показывает, что 360 дней было потрачено на 77 тысяч строк кода Python и 300 дней (почти столько же) на 44 тысяча строк кода C, C++ или другого кода. Исходя из нашего опыта преобразования кода, мы считаем, что для большинства типов кода, критически важного для производительности, примерно правильно приравнивать одну строку Python к десяти строкам кода C или C++. Это означает, что около 5-10% функциональности нашего приложения находится на C или C++, а остальное — на Python. Даже с учетом того, что код C/C++ несколько сложнее, чем большая часть кода Python, эти результаты безоговорочно подтверждают, что работа на Python намного продуктивнее, чем на C или C++.

    Оглядываясь назад, мы считаем, что могли бы преобразовать небольшие блоки кода в C, написав более общие механизмы обработки данных и более тщательно выбрав код для преобразования, а не преобразовывая целые модули за раз. Наша основная цель в отношении Python в будущем — иметь возможность использовать его чаще, даже в критически важных для производительности участках кода.Этим усилиям должны способствовать такие проекты, как pyrex, который позволяет использовать код, подобный Python, при разработке скомпилированных модулей расширения, и psyco, который представляет собой компилятор для Python, работающий по принципу «точно в срок».

    Есть только две особенности, которые повлияли на нашу разработку с Python. Относительное влияние, которое они оказали на наш проект, было незначительным по сравнению с преимуществами Python, но для баланса мы считаем, что их стоит упомянуть:

    1) Подобно Java и другим языкам, Python иногда объявляет устаревшими старые функции или исправляет незначительные ошибки таким образом, что это потенциально может нарушить существующий код. Это делается в течение нескольких выпусков, поэтому программисты сначала увидят предупреждения об устаревании, и только позже на них повлияет изменение. Мы столкнулись с этим только один раз, когда Python 2.0 начал запрещать использование нескольких аргументов в методе добавления последовательности. Эта проблема потребовала изменения ровно трех легко находимых вызовов в нашей кодовой базе из более чем 77 000 строк Python.

    2) Различные версии Python могут создавать несовместимый скомпилированный байтовый код и требуют, чтобы модули расширения C/C++ были скомпилированы для конкретной версии Python. Например, хотя Python 2.2.2 успешно работает с байтовым кодом Python 2.2.1 или 2.2.0 и модулями расширения, он будет выводить предупреждения и может столкнуться с проблемами, связанными с кодом, скомпилированным для Python 2.1.x или более ранней версии. За этим выбором дизайна стоят веские технические причины, но он требует дополнительной работы при упаковке приложений для распространения среди пользователей, использующих разные версии Python. В отладчике Wing IDE мы решаем проблему, просто сохраняя отдельные каталоги для каждой версии интерпретатора и соответственно импортируя модули во время выполнения. Что касается самой IDE, мы решаем ее, поставляя специальный интерпретатор Python; задача, которую легко выполнить с помощью пакета distutils стандартной библиотеки Python.

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

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

    Стефан Р.А. Deibel занимается проектированием и разработкой программного обеспечения уже почти 20 лет. Он много работал в области медицинской информатики и в качестве консультанта по программному обеспечению. Прежде чем найти Python, его проекты включали одну из первых систем создания мультимедиа на базе Macintosh и раннюю реализацию CORBA. Сейчас Стефан является генеральным директором и соучредителем компании Archeopteryx Software, Inc, создавшей Wing IDE.

    Джон П. Эресман более десяти лет занимается программированием в области медицинской информатики и консультантом по программному обеспечению. Он использует Python с версии 1.2 и сейчас является соучредителем Archeopteryx Software, Inc.

    PSF

    Python Software Foundation — это организация, стоящая за Python. Станьте участником PSF и помогите продвигать программное обеспечение и нашу миссию.


    Предназначен для быстрого редактирования и создания сигналов, палитр, групп и т. д. Включает в себя 3 поворотных регулятора и большой текстовый дисплей с выделенными цифровыми и программными кнопками.

    Запрограммируйте свои команды

    Крыло программы ENTTEC предназначено для пользователей программного обеспечения для управления освещением, которым требуется быстрое редактирование и создание сигналов, палитр и групп. Имеет три поворотных энкодера и множество MX, цифровых и функциональных клавиш. Подключение Ethernet дополняет это быстрое и эффективное дополнение.


    Возможности

    Подключение к вашей сети

    Разъем RJ45 Ethercon для подключения 10Base-T Ethernet позволяет подключаться к существующей сети. Поддерживает как DHCP, так и статическую IP-адресацию для универсальной поддержки маршрутизаторов и коммутаторов.

    Кнопки, клавиши и энкодеры

    9 оконных клавиш, 25 операционных и функциональных клавиш, 19 клавиш цифровой клавиатуры, 4 клавиши со стрелками и Backspace и 3 поворотных энкодера. Также имеется 4-строчный 20-символьный ЖК-дисплей. Все, что вам нужно, чтобы запрограммировать свое сердце.

    Избранное и действия

    Сопоставьте функциональные клавиши с программным обеспечением и используйте их как избранные или для прокрутки различных окон программного обеспечения. Program Wing позволяет легко делать несколько вещей, а также выполнять команды и действия.

    Современный веб-интерфейс

    Настройте Wings с помощью современного веб-интерфейса, который можно использовать с любым текущим веб-браузером. Не нужно загружать программное обеспечение, не нужно изучать другой способ изменения настроек. Веб-интерфейс минимален, но в то же время адекватен.

    Обратите внимание: оборудование revB позволяет обновлять прошивку через веб-браузер.

    Крылья, выпущенные в 2015 году или позже, имеют номер revB и указаны на этикетке без серийного номера.

    _images/home_plane.jpg

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

    Plane предоставляет расширенные функции, такие как поддержка сотен трехмерных путевых точек, автоматический взлет и посадка, а также сложное планирование миссии и управление камерой. Он работает с различным программным обеспечением наземных станций управления (GCS) для программирования и операций и предлагает комплексное решение для БПЛА.

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

    Системные компоненты¶

      загружается с последней версией микропрограммы Plane с программным обеспечением, которое обеспечивает простую настройку/конфигурацию в режиме «укажи и щелкни», а также имеет полнофункциональный интерфейс.
    • Подходящий планер, передатчик и приемник для вашей миссии.
    • Вспомогательные инструменты и оборудование для эксплуатации и обслуживания вашего самолета.
    • Много других полезных опций, таких как двусторонняя радиотелеметрия, которая обеспечивает связь и управление в полете между дроном и вашим компьютером.

    Самолеты¶

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

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

    Когда требуются точные миссии, самолеты с неподвижным крылом находятся в невыгодном положении, так как они должны иметь воздух, движущийся над крыльями для создания подъемной силы. Это означает, что они должны оставаться в движении вперед, а это означает, что они не могут зависать на одном месте, как это делает коптер, и, как следствие, не могут обеспечить такой же уровень точного позиционирования камеры.

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

    Читайте также: