【问题标题】:Parallel SSH - no module named gevent error并行 SSH - 没有名为 gevent 的模块错误
【发布时间】:2017-07-29 23:02:30
【问题描述】:

我使用 pip 安装了 parallel-ssh(我不知道为什么它是为 Python 2.7 安装的;它不是为 Python 3 来的吗?),然后我尝试在 IDLE 中导入以使用。我正在关注在线文档上的快速入门指南。它给了我一个错误,说“没有名为 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 的猴子补丁来启用 Python 标准库的网络 I/O 的异步使用。

确保 ParallelSSH 导入在任何其他导入之前 你的代码。否则可能无法在标准前打补丁 库已加载,这将导致 ParallelSSH 阻塞。

如果您看到类似“此操作将永远阻塞”的消息, 这就是原因。

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

【问题讨论】:

  • 使用 pip 安装 gevent,我在尝试安装 Paramiko 时也遇到了这个问题
  • @AdriánKálazi 我尝试安装 gevent,但它给了我一个错误,说“gevent 构建轮子失败”。

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


【解决方案1】:

看起来 gevent 安装没有完成。

试试:

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

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

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

【讨论】:

    【解决方案2】:

    如果您为 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
    

    【讨论】:

    • 如果我的 Python 安装归操作系统所有,会有问题吗?安装需要很长时间,我取消了操作,因为我不想再继续了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-08-18
    • 2020-02-12
    • 2017-12-26
    • 2019-01-17
    • 2014-12-25
    • 2018-04-29
    • 2011-06-26
    相关资源
    最近更新 更多