我使用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阻塞。
如果您看到此操作会永远阻止的消息, 这就是原因。
这是我导入的第一件事,所以我不知道它为什么会出错。有人可以帮帮我吗?感谢。
答案 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