PyDev: как убрать ключ командной строки -u - PullRequest
0 голосов
/ 13 марта 2012

Мой код нарушается Eclipse, но работает нормально, если я запускаю его из командной строки с Python и без опции. Мне нужно удалить опцию -u, когда интерпретатор python запущен в eclipse и pydev, как я могу это сделать?

Ответы [ 3 ]

0 голосов
/ 13 марта 2012

Я не понимаю, зачем вам это нужно, и я согласен с Фабио Задрозным в том, что, похоже, происходит какая-то более глубокая проблема.В конце концов, когда вы запускаете в командной строке интерактивный интерпретатор Python, он также работает в небуферизованном режиме.Eclipse просто ведет себя больше как стандартный интерпретатор.

Тем не менее, вы должны иметь возможность сделать sys.stdout буферизованным, выполнив следующее:

sys.stdout = os.fdopen(sys.stdout.fileno(), 'w', 1)

Для stdin просто измените 'от w до rПоследний аргумент - это размер буфера, где 1 указывает буферизацию строки, а любое число больше 1 указывает буфер этого размера (в байтах).

0 голосов
/ 14 марта 2012

Похоже, что разработчики Adroid столкнулись с той же проблемой ...

#!/bin/bash

if [ "$1" = '-u' ]
then
 shift
fi

exec python2.7 "$@"

действительно удаляет -u, но pydev не доволен этим расположением в моей системе.Я новичок в pydev, так что, может быть, это поможет кому-то с большими навыками ... Есть и другие, а также советы для Windows на блоге Диего Торреса Милано

0 голосов
/ 13 марта 2012

На самом деле, пока вы не можете сделать это, не захватывая код и не изменяя его самостоятельно (т.е. это жестко закодировано).

Но, тем не менее, если вы не используете небуферизованный вывод (т. Е. Параметр -u), консоль PyDev в конечном итоге не будет отображать вывод ввода-вывода в том виде, как он напечатан (так как он будет буферизован).

Итак, что же ломается, потому что -u? (возможно, было бы лучше исправить это, затем изменить запуск PyDev без -u, так как вы можете остаться без вывода, пока выполнение не будет завершено, если вы это сделаете).

...