Там какой-либо путь состоит в том, чтобы получить REPL в pydev?

Цитирование Net :: SSH2 :: Channel

Кроме того, можно также запустить удаленную оболочку (используя оболочку) и смоделировать команды печати взаимодействия пользователя с поток stdin и чтение данных обратно из stdout и stderr. Но такого подхода следует избегать, если это возможно; говорить с оболочкой сложно и, в общем, ненадежно.

blockquote>

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

sub exec_remote($) {
    my($ssh2, $cmd) = @_;

    # every exec() requires a new channel
    my $chan = $ssh2->channel()
        or $ssh2->die_with_error;

    # send command to remote
    $chan->exec($cmd)
        or $ssh2->die_with_error;

    # we're done from our side
    $chan->send_eof;

    # ignore command output
    while (<$chan>) {}

    # wait for remote command to complete and return its exit status
    return $chan->exit_status;
}

sub copy_remote_if_necessary($$) {
     my($ssh2, $source, $destination, $file) = @_;

     if (exec_remote($ssh2, "/usr/bin/test -f ${destination}/${file}") ne 0) {
         die "Copy failed!\n"
             unless (exec_remote($ssh2, "cp ${source}/${file} ${destination}/") ne 0);
     }
}

copy_remote_if_necessary($ssh2, '/data/Directory1', '/data/Directory2', 'ABC.csv');

9
задан John 28 October 2008 в 01:46
поделиться

2 ответа

Я не использую pydev, но спадать до интерактивного REPL Python из кода:

import code
code.interact(local=locals())

Спадать до отладчика Python из кода:

import pdb
pdb.set_trace()

Наконец, для выполнения интерактивного REPL после выполнения некоторого кода можно использовать Python -i переключатель:

python -i script.py

Это даст Вам подсказку Python после кода, даже если он выдаст исключение.

Вы можете сцеплять некоторые из тех решений в pydev, я думаю.

3
ответ дан 4 December 2019 в 20:25
поделиться

Существует специализированная Консоль Pydev доступная при нажатии на "Новой консоли", выпадающей в консольном представлении.

См. http://pydev.sourceforge.net/console.html

6
ответ дан 4 December 2019 в 20:25
поделиться