导入测试库' SSHLibrary'导入错误"导入Paramiko库失败。确保安装了Paramiko。"

时间:2015-07-07 10:30:23

标签: python python-2.7 ubuntu docker robotframework

我正在尝试运行使用SSHLibrary的机器人框架测试用例。我已经安装了所有必需的库(在这种情况下是paramiko)。但我仍然得到这个错误。

我得到的错误是:

Error in file '/opt/bdd_keywords.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 20, in <module>
    'Importing Paramiko library failed. '

PYTHONPATH:

  /usr/local/lib/python2.7/dist-packages/robot/libraries

  /usr/local/lib/python2.7/dist-packages

  /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/lib/python2.7/dist-packages
  .'

当我再次尝试安装paramiko时,我得到以下输出:

`要求已经满足(使用--upgrade升级):/usr/local/lib/python2.7/dist-packages/paramiko-1.15.2-py2.7.egg

中的paramiko

要求已经满足(使用--upgrade升级):pycrypto!= 2.4,&gt; = 2.1 in /usr/local/lib/python2.7/dist-packages(来自paramiko)

要求已经满足(使用--upgrade升级):/usr/local/lib/python2.7/dist-packages中的ecdsa&gt; = 0.11(来自paramiko)`

P.S:我正在尝试在Docker容器上运行此测试。 DatabaseLibrary关键字工作正常。

4 个答案:

答案 0 :(得分:2)

这是Python解释器和paramiko c-extension之间的不兼容性。有关详细信息,请参阅http://effbot.org/pyfaq/when-importing-module-x-why-do-i-get-undefined-symbol-pyunicodeucs2.htm

你必须

  • 安装不同的Python版本
  • 或者从源代码构建和安装paramiko,而不是使用pip

答案 1 :(得分:0)

视窗: 下载

  

pycrypto-2.6.win-AMD64的py2.7.exe

并运行exe。 然后在命令提示符下执行 python -c“import SSHLibrary”执行此命令不应该报告任何消息

答案 2 :(得分:0)

当我尝试在Python 2.7中导入SSHLibrary时面临同样的问题。 Paramiko使用枚举包。问题是在版本3.4之前,枚举包没有添加到Python。

它已被反向移植到较低版本的Python中,您只需从此处获取包:https://pypi.python.org/pypi/enum34#downloads

或尝试

“pip install enum”以解决问题。

答案 3 :(得分:-1)

SSHLibrary使用paramiko模块。

&#13;
&#13;
pip install paramiko
&#13;
&#13;
&#13;

仍然存在问题,检查是否存在2个python版本,然后paramiko可能安装在一个版本中,默认python是另一个版本。