并行SSH - 没有名为gevent错误的模块

时间:2017-07-29 23:02:31

标签: python python-2.7 python-3.x gevent traceback

我使用pip安装了parallel-ssh(我不知道它为Python 2.7安装的原因;它不适用于Python 3吗?),然后我尝试在IDLE中导入使用。我正在关注在线文档的快速入门指南。它给了我一个错误,说有#34;没有名为gevent"的模块。

以下是整个错误:

    Traceback (most recent call last):
  File "/home/pi/test.py", line 1, in <module>
    from pssh.pssh_client import ParallelSSHClient
  File "/usr/local/lib/python2.7/dist-packages/pssh/__init__.py", line 38, in <module>
    from .pssh_client import ParallelSSHClient
  File "/usr/local/lib/python2.7/dist-packages/pssh/pssh_client.py", line 24, in <module>
    from gevent import monkey  # noqa: E402
ImportError: No module named gevent

来自文档,它说

  

ParallelSSH使用gevent的Monkey补丁来异步使用Python标准库的网络I / O.

     

确保ParallelSSH导入在任何其他导入之前   你的代码。否则,可能无法在标准之前进行修补   加载库,然后导致ParallelSSH阻塞。

     

如果您看到此操作会永远阻止的消息,   这就是原因。

这是我导入的第一件事,所以我不知道它为什么会出错。有人可以帮帮我吗?感谢。

2 个答案:

答案 0 :(得分:1)

看起来gevent安装不完整。

尝试:

pip install -U pip
pip install -U setuptools
pip install -U parallel-ssh

为了能够安装gevent和parallel-ssh使用的二进制轮,需要升级pip / setuptools。

从源代码构建需要您可能没有的编译器和头文件。

答案 1 :(得分:0)

如果您安装了Python 2.7的模块,那么它将无法在您的Python 3解释器中运行。如果Python 2.7是您的默认解释器,您只需要使用Python 3命令

调用pip命令

您可能运行此命令来安装模块:

[root@server] python -m pip install <module>
>> Requirement already satisfied: <module> in /Library/Python/2.7/site-packages

尝试此命令:

[root@server] python3 -m pip install <module>
>> Requirement already satisfied: <module> in /Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages