2017-04-02 541 views
2

有人能告诉我,我在做下面的代码有什么错误,我尝试使用机器人框架,运行shell命令,我已经使用以下命令安装sshlibrary模块 - pip install robotframework-sshlibrary。但是我仍然收到导入SSHLibrary失败的错误。我的操作系统是Ubuntu14.04。如何通过robotframework执行ssh命令

Deploy.robot

*** Settings *** 
Library   SSHLibrary 
Resource  configuration.txt 

*** Variables *** 
${OBR_HOST}  10.110.72.192 
${OBR_USERNAME} root 
${OBR_PASSWORD} password 

*** Test Cases *** 

Deploy OBR machine code 
    ${output}= Execute Command /root/deploy.sh 
    log to console ${\n}${output} 

*** Keywords *** 
open_connection_and_login 
    Open Connection ${OBR_HOST} 
    Login ${OBR_USERNAME} ${OBR_PASSWORD} 

执行日志

[email protected]:~# pybot ssh-example.robot 
[ ERROR ] Error in file '/root/ssh-example.robot': Importing test library 'SSHLibrary' failed: ImportError: Importing Paramiko library failed. Make sure you have Paramiko installed. 
Traceback (most recent call last): 
    File "/usr/local/lib/python2.7/dist-packages/SSHLibrary/__init__.py", line 15, in <module> 
    from .library import SSHLibrary 
    File "/usr/local/lib/python2.7/dist-packages/SSHLibrary/library.py", line 22, in <module> 
    from .client import SSHClient 
    File "/usr/local/lib/python2.7/dist-packages/SSHLibrary/client.py", line 20, in <module> 
    from pythonclient import PythonSSHClient as SSHClient 
    File "/usr/local/lib/python2.7/dist-packages/SSHLibrary/pythonclient.py", line 21, in <module> 
    'Importing Paramiko library failed. ' 
PYTHONPATH: 
    /usr/local/bin 
    /usr/lib/python2.7 
    /usr/lib/python2.7/plat-x86_64-linux-gnu 
    /usr/lib/python2.7/lib-tk 
    /usr/lib/python2.7/lib-old 
    /usr/lib/python2.7/lib-dynload 
    /usr/local/lib/python2.7/dist-packages 
    /usr/lib/python2.7/dist-packages 
    /usr/lib/python2.7/dist-packages/PILcompat 
    /usr/lib/python2.7/dist-packages/gtk-2.0 
    /usr/lib/python2.7/dist-packages/ubuntu-sso-client 
============================================================================== 
Ssh-Example                 
============================================================================== 
Execute Deploy command            | FAIL | 
Parent suite setup failed: 
No keyword with name 'Open Connection' found. 
------------------------------------------------------------------------------ 
Ssh-Example               | FAIL | 
Suite setup failed: 
No keyword with name 'Open Connection' found. 

Also suite teardown failed: 
No keyword with name 'Close All Connections' found. 

1 critical test, 0 passed, 1 failed 
1 test total, 0 passed, 1 failed 
============================================================================== 
Output: /root/output.xml 
Log:  /root/log.html 
Report: /root/report.html 
[email protected]:~# pip install robotframework-sshlibrary 
Requirement already satisfied (use --upgrade to upgrade): robotframework-sshlibrary in /usr/local/lib/python2.7/dist-packages 
Requirement already satisfied (use --upgrade to upgrade): robotframework in /usr/local/lib/python2.7/dist-packages (from robotframework-sshlibrary) 
Requirement already satisfied (use --upgrade to upgrade): paramiko>=1.8.0 in /usr/local/lib/python2.7/dist-packages (from robotframework-sshlibrary) 
Cleaning up... 
+1

能否请您检查的paramiko库安装? 'pip list | grep paramiko'。它应该作为sshlibrary的依赖项自动安装。 –

+1

'root @ 92:〜#pip list |的grep的paramiko 的paramiko(2.1.2)'' 根@ 92:〜#蟒-V 的Python 2.7.6'的paramiko库的安装。会不会有任何依赖python版本? – Madhu

+1

稀有案例!但值得检查系统是否有多个Python版本!和pybot相关的必须用SSH lib进行更新。 – Waman

回答

2

貌似是参与机器人框架前SSHLibrary/pythonclient.py发生的错误。尝试制作一个导入Paramiko的小Python脚本。有时pippybot使用不同版本的Python。尝试将head -n1 $(which pip)的输出与head -n1 $(which pybot)进行比较以检查。