Windows10环境下Python导入Exscript模块遇ImportError问题求助
问题:Python SSH脚本运行报错(Exscript与Python 3.10兼容性问题)
环境与脚本
- 操作系统:Windows 10
- 脚本用途:通过SSH连接设备并执行配置
脚本代码:
from Exscript import Account from Exscript.protocols import SSH2 account = Account("user","password") conn = SSH2() conn.connect('192.168.200.2') conn.login(account)
报错信息
运行脚本时触发导入错误,具体栈信息如下:
Traceback (most recent call last): File "c:\Users\hp\Desktop\password-finder.py", line 2, in <module> from Exscript.protocols import SSH2 File "c:\Users\hp\AppData\Local\Programs\Python\Python310\lib\site-packages\Exscript\__init__.py", line 34, in <module> from .queue import Queue File "c:\Users\hp\AppData\Local\Programs\Python\Python310\lib\site-packages\Exscript\queue.py", line 40, in <module> from .util.decorator import get_label File "c:\Users\hp\AppData\Local\Programs\Python\Python310\lib\site-packages\Exscript\util\decorator.py", line 28, in <module> from ..protocols.exception import LoginFailure File "c:\Users\hp\AppData\Local\Programs\Python\Python310\lib\site-packages\Exscript\protocols\__init__.py", line 26, in <module> from ..util.url import Url File "c:\Users\hp\AppData\Local\Programs\Python\Python310\lib\site-packages\Exscript\util\url.py", line 36, in <module> from .collections import OrderedDefaultDict File "c:\Users\hp\AppData\Local\Programs\Python\Python310\lib\site-packages\Exscript\util\collections.py", line 9, in <module> from collections import OrderedDict, Callable, defaultdict ImportError: cannot import name 'Callable' from 'collections' (c:\Users\hp\AppData\Local\Programs\Python\Python310\lib\collections\__init__.py)
临时解决方法
修改Exscript库的源码文件:
- 找到文件路径:
c:\Users\hp\AppData\Local\Programs\Python\Python310\lib\site-packages\Exscript\util\collections.py - 定位到第9行,将原代码:
from collections import OrderedDict, Callable, defaultdict
替换为:
from collections import OrderedDict, defaultdict
内容的提问来源于stack exchange,提问作者Mahdi
相关产品推荐
相关产品推荐

