首页 > 解决方案 > 当我尝试在 Python 3.5.1 中安装 paramiko 模块时,我得到一个无效的语法并且无法安装它

问题描述

当我尝试在 Python 3.5.1 中添加一个名为 paramiko 的模块以在命令提示符下添加 ssh 通信功能时,我收到以下错误消息并且无法安装它。

Traceback (most recent call last):
  File "C:\Users\tishi\AppData\Local\Programs\Python\Python35\lib\runpy.py", line 170, in _run_module_as_main
    "__main__", mod_spec)
  File "C:\Users\tishi\AppData\Local\Programs\Python\Python35\lib\runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "C:\Users\tishi\AppData\Local\Programs\Python\Python35\lib\site_packages\pip\__main__.py", line 21, in <module
    from pip._internal.cli.main import main as _main
  File "C:\Users\tishi\AppData\Local\Programs\Python\Python35\lib\site_packages\pip\internal\cli\main.py", line 60
    sys.stderr.write(f "ERROR: {exc}")
                                   ^
SyntaxError: invalid syntax

对于安装方法,我输入如下

py -m pip install paramiko

我希望你能帮我解决这个问题,谢谢。

标签: pythonpython-3.x

解决方案


如错误消息中所示,字符串和变量编辑规范 f "ERROR: {exc}" 是格式化的字符串文字,自 Python 3.6 起就已支持该规范。

您的 3.5.1 版本不支持它们,因此您可能会收到 SyntaxError: invalid syntax。

如何在 Python 中使用 f-strings(格式化字符串文字)

Python 3.6 引入了 f-string(f-strings,格式化字符串,格式化字符串字面量)机制,使得编写冗余字符串方法 format() 变得更加容易。

请注意,这在 3.5 之前的版本中不可用。

使用格式化字符串文字(f-strings)格式化字符串

格式化字符串时,从 Python 3.6 开始可以使用格式化字符串文字(f-strings)作为使用 format 方法的更简洁的方式。

如果您仔细观察,似乎不是 paramiko 导致了问题,而是 pip。

另外,如果您查看pip 20.3.4 - PyPI,似乎 Python 2.7/3.5 支持到此版本,并且就在最近(2021 年 1 月 23 日),两者都在同一天发布,仅 21.0 系列支持 Python 3.6 及更高版本,以及同时支持 Python 2.7/3.5 的 20.3 系列。两人在同一天被释放。

发布历史 - pip - PyPI[在此处输入链接描述][1]

如果你的 pip 已经升级到 21.x,那么无论你做什么都可能无法使用那个模块,但是你可以尝试几种方法来降低 pip 版本号。

使用不超过 20.3.4 的旧版本号重新安装 pip 本身。使用@metropolis 介绍的方法为 Python 3.5 安装 pip 创建一个新的 Python 3.5.1 环境并在其中安装 Python 3.5 的 pip。


推荐阅读