Я был техническим специалистом, работающим над этой проблемой, и нашел, как заставить интерактивное редактирование работать. Проблема с использованием yum в том, что поскольку ОС использует так много python, мы не можем обновлять его через yum (политика компании).
Мне пришлось скомпилировать python 3.4.3 из исходников. После того как он был скомпилирован и установлен, мне пришлось добавить каждый пакет, которого не хватало. Этим конкретным пакетом был gnureadline
. Readline является устаревшим. Вот шаги, которые я предпринял для сборки и установки пакета (для CentOS 6.7):
wget https://pypi.python.org/pypi/gnureadline/6.3.3
tar -xzvf gnureadline-6.3.3.tar.gz
cd gnureadline-6.3.3
python3 setup.py install
NOTE: Здесь я столкнулся с проблемой /usr/bin/ld: cannot find -lncurses
. Используя /usr/bin/ld -lncurses --verbose
, обнаружил, что в путях, по которым он искал, нет библиотек. Создал симлинк, и все заработало. Если вы не получаете ошибок, перейдите к последнему шагу.
ln -s /lib64/libncurses.so.5.7 /usr/lib64/libncurses.so
python3 setup.py install
Простая программа на языке Go для управления выводом.
// moderare will slow down printing.
//
// $ find ~ | moderare
package main
import (
"bufio"
"flag"
"fmt"
"io"
"log"
"os"
"time"
)
var (
sleep = flag.Duration("s", 1*time.Second, "sleep after each line")
br = bufio.NewReader(os.Stdin)
)
func main() {
flag.Parse()
for {
line, err := br.ReadString('\n')
if err == io.EOF {
break
}
if err != nil {
log.Fatal(err)
}
time.Sleep(*sleep)
fmt.Printf(line)
}
}