Как Вы используете IronPython? [закрытый]

Кажется, вместо counter2 = (counter2 + 1) Mod 5 вы хотите сделать counter2 = (counter2 Mod 4) + 1

Если вы определите число по модулю 5, ожидается, что оно сгенерирует 5 шагов.
Установка переменной по модулю 4, а затем добавление 1 к ней сделает цикл от 1 до 4.

28
задан Will Dean 28 July 2010 в 11:24
поделиться

10 ответов

do you use the .NET framework without Intellisense?

Да. Я использую только emacs с IronPython. "M- /" мне достаточно. Я иногда переключаюсь на Reflector и MSDN, когда мне действительно нужна информация о SDK.

Refactoring

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

Crippling startup time

Да, это моя ОСНОВНАЯ боль, хотя я работаю над четырехъядерным процессором 3 ГГц с 4G Ram, на выполнение 359 тестовых случаев уходит 50 секунд. Половина этого времени (25 секунд) - это время запуска !! Похоже, что IronPython выполняет очень тяжелую задачу обработки при импорте большого модуля. Теперь я планирую разделить свои тесты на части, чтобы уменьшить эту боль.

Interactive hacking - Do you use the console?

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

Debugging - what's the story here?

Если отладка означает точку останова и проверку переменных. Я использую исключительно оператор печати для этого. Приложение, над которым я работаю, будет жить и поддерживать как минимум десять лет. Чтобы работать с дефектным кодом, я делаю ставку только на 3 вещи: понятный код, модульное тестирование и расширенное ведение журнала.

Unit testing

Я никогда не приближался ни к одному инструменту, который вы упоминаете. Просто используйте unittest.TextTestRunner. Кроме ужасного времени запуска, у меня нет других жалоб.

** ОБНОВЛЕНО **

Я только что завершил обновление до IPy 2.6B1 с феноменальным результатом. Время запуска уменьшилось с 25 до 6 секунд, а общее время тестирования уменьшилось с 50 до 16 !!!

УДИВИТЕЛЬНО!

11
ответ дан 28 November 2019 в 03:15
поделиться

Я использую IPy во встроенной среде для запуска тестовых сценариев.

1 & 2. Вы правы, там не так много поддержки редактирования или рефакторинга кода - правильная поддержка Visual Studio была бы отличной.

Игнорирование вашего третьего пункта - интерпретируемый vs скомпилированный - это давний аргумент.

Еще мало занимались интерактивным взломом, поэтому не могу комментировать 4-й пункт.

Я использую отладчик Visual Studio для отладки своих сценариев IPy.

Не знаю и об интеграции IDE модульного тестирования.

2
ответ дан 28 November 2019 в 03:15
поделиться

Я использую Iron Python, к сожалению, не профессионально, а в качестве языка быстрой разработки для своих личных проектов.

Python - отличный язык для простоты использования, краткости но читабельность кода и простота. Отчасти это связано с тем, что это динамический язык, но также и его базовый синтаксис.

Я, однако, не гуру cpython, и могу получить гораздо больше от Iron Python, чем cpython, поскольку я могу легко использовать платформу .NET. , на котором я гораздо больше дома. Я разочарован тем, что в настоящее время нет порта для библиотек Twisted в cpython, единственных расширенных библиотеках Python, которые мне удобны, поскольку они были бы очень полезны в .NET.

Я также использую интерактивное окно только для тестирования структур .NET. когда я кодирую на C #.

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

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

Я, однако, не гуру cpython, и могу получить гораздо больше от Iron Python, чем cpython, поскольку я могу легко использовать платформу .NET. , на котором я гораздо больше дома. Я разочарован тем, что в настоящее время нет порта для библиотек Twisted в cpython, единственных расширенных библиотеках Python, которые мне удобны, поскольку они были бы очень полезны в .NET.

Я также использую интерактивное окно только для тестирования структур .NET. когда я кодирую на C #.

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

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

Я, однако, не гуру cpython, и могу получить гораздо больше от Iron Python, чем cpython, поскольку я могу легко использовать платформу .NET. , на котором я гораздо больше дома. Я разочарован тем, что в настоящее время нет порта для библиотек Twisted в cpython, единственных расширенных библиотеках Python, которые мне удобны, поскольку они были бы очень полезны в .NET.

Я также использую интерактивное окно только для тестирования структур .NET. когда я кодирую на C #.

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

Я, однако, не гуру cpython, и могу получить гораздо больше от Iron Python, чем cpython, поскольку я могу легко использовать платформу .NET. , на котором я гораздо больше дома. Я разочарован тем, что в настоящее время нет порта для библиотек Twisted в cpython, единственных расширенных библиотеках Python, которые мне удобны, поскольку они были бы очень полезны в .NET.

Я также использую интерактивное окно только для тестирования структур .NET. когда я кодирую на C #.

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

Я, однако, не гуру cpython, и могу получить гораздо больше от Iron Python, чем cpython, поскольку я могу легко использовать платформу .NET. , на котором я гораздо больше дома. Я разочарован тем, что в настоящее время нет порта для библиотек Twisted в cpython, единственных расширенных библиотеках Python, которые мне удобны, поскольку они были бы очень полезны в .NET.

Я также использую интерактивное окно только для тестирования структур .NET. когда я кодирую на C #.

2
ответ дан 28 November 2019 в 03:15
поделиться

Я использую PyDev для написания кода IronPython. Я пытаюсь разделить код, специфичный для .NET, насколько это возможно, чтобы я мог запускать (железные) скрипты Python из PyDev. Благодаря PyDev я могу использовать Pylint, который можно найти по адресу http://www.logilab.org/857 . Последние версии PyDev могут настраивать интерпретатор даже для каждого файла или проекта. Итак, я могу легко переключить интерпретаторы с IronPython на CPython и наоборот. Таким образом, я вижу, что мой код переносится между реализациями Python. (Хотя я не использую, Jython 2.5 RC также можно использовать в PyDev.)

Имея код, совместимый с Python и IronPython 2.5, я могу использовать рефакторинг в PyDev, см. http://pydev.sourceforge.net /refactoring.html

IronPython Studio был бы хорошим выбором, если бы он поддерживал IronPython 2.x,

5
ответ дан 28 November 2019 в 03:15
поделиться

Я использовал IronPython только для создания быстрых прототипов для себя, поэтому я не могу сказать об этом слишком много. Но если вы ищете IDE, специфичную для IronPython, IronPython Studio подойдет. Это даст вам некоторую функциональность Intellisense, хотя временами она немного нестабильна, поэтому пока не закрывайте это окно документации MSDN. Это позволит вам выполнять отладку в интерактивном режиме, как любой другой проект .Net. Также он поддерживает конструктор форм Visual Studio 2008, если вы предпочитаете сделать свой графический интерфейс именно таким. Я не пробовал, но он также может поддерживать запуск тестов nUnit с использованием TestDriven.net.

К сожалению, переименования и другие функции рефакторинга, предлагаемые VS 2008, кажутся неподдерживаемыми.

2
ответ дан 28 November 2019 в 03:15
поделиться

IronPython - отличное решение, но я продолжаю возвращаться к CPython для Windows. Почему?

По моему опыту, CPython под Windows, Mac OS / X и * NIX практически одинаковы. Я могу использовать почти все «батарейки» в любой среде. Я часто разрабатываю приложения для Linux и отправляю их на серверы Windows. Пара проблем с потоковой передачей в сторону, у меня проблем не было.

IronPython, с другой стороны, является оболочкой языка Python вокруг .Net Framework. Я считаю его намного приятнее в использовании, чем C #, но это все. Мои программы на CPython не работают без значительной переделки. Батареи для IronPython разные.

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

7
ответ дан 28 November 2019 в 03:15
поделиться

Я только что купил книгу Фурда, так что сейчас я только изучаю ее. Я действительно надеюсь использовать его для веб-разработки, но, к сожалению, мне нужно подождать, пока он не будет поддерживаться asp.net mvc. Я также планирую использовать его как инструмент создания сценариев для систем Windows, так как я могу использовать инфраструктуру .net

1
ответ дан 28 November 2019 в 03:15
поделиться

Я запускаю набор симуляций блэкджека на Python 2. 6 против IronPython 2.6, и несмотря на шумиху, IronPython кажется немного медленнее (может быть, примерно на 10%?) Код очень простой, просто такие вещи, как:

def highcount(hand):
  total=0
  for c in hand:
    if c[1]==11 and 11+total>21:
      total+=1
    else:
      total+=c[1]
  return total

и

def dmove():
  if ( (dhand[0][1]==11 and dhand[1][1]==10) or 
       (dhand[0][1]==10 and dhand[1][1]==11) ):
    return 21 # should return blackjack

  while 1:
    lc=lowcount(dhand)
    hc=highcount(dhand)
    if lc>21: return lc # dealer busts
    if lc>=17: return hc # stand on soft 17
    if hc>=17: return hc # stand on hard 17
    dhand.append(deck.pop()) # hit otherwise

Если оптимизация .NET VM похожа на оптимизацию JVM в Hotspot, вполне возможно, что при длительной работе IronPython может выполнять моделирование быстрее.

Еще один важный момент - симуляция блэкджека легко поддается порождению на нескольких потоках, что GIL CPython делает совершенно бесполезным с точки зрения увеличения скорости. С IronPython я получаю полное 400% ускорение на четырехъядерном процессоре, что действительно очень здорово.

Код не использует никаких эзотерических возможностей Python (это хорошо), что означает, что он работает на 100% без изменений на IronPython.

2
ответ дан 28 November 2019 в 03:15
поделиться

Как насчет инструментов IronPython для Visual Studio 2010?

Инструменты IronPython предоставляют редактор кода Python, файловую систему проектов и интерактивную Интерпретатор Python внутри Visual Studio 2010 и все это бесплатно. http://ironpython.net/tools/

Я думаю, что эта надстройка решит большинство ваших вопросов.

Надеюсь, это поможет,

Патрик

10
ответ дан 28 November 2019 в 03:15
поделиться

Инструменты PyDev, Wing, PyCharm и IronPython для Visual Studio поддерживают intellisense для .NET под IronPython. У меня такое ощущение, что SharpDevelop также имеет intellisense для IronPython.

Время запуска значительно улучшилось в IronPython 2.6 и 2.7. Однако он по-прежнему значительно медленнее, чем CPython.

Ремонтник велосипедов и веревка - два популярных автоматизированных инструмента рефакторинга для Python. Ни в одном из них я никогда не нуждался.

pdb (отладчик стандартной библиотеки Python) работает с IronPython. Инструменты PyDev, SharpDevelop и IronPython для Visual Studio поддерживают отладку для IronPython.

Я использовал интегрированные инструменты тестирования (Wing имеет хорошую поддержку unittest, SharpDevelop поддерживает unittest, а unittest2 для IronPython, PyDev и PyCharm, вероятно, также имеют хорошую интеграцию unittest). Я предпочитаю запускать тесты из командной строки. unittest2 отлично подходит для этого, поскольку избавляет от необходимости писать собственный код сбора / запуска тестов.

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

4
ответ дан 28 November 2019 в 03:15
поделиться
Другие вопросы по тегам:

Похожие вопросы: