Visual Studio Code 不识别 findent 安装,尽管 Python 解释器和 PATH 配置正确

0 投票
1 回答
67 浏览
提问于 2025-04-13 19:48

我在Windows上使用Visual Studio Code的现代Fortran扩展时遇到了一个持续的问题。虽然我已经正确安装了findentfortran-language-serverfprettify,并且使用特定的Python解释器更新了VS Code中的用户settings.json以包含必要的路径,但这个扩展似乎还是无法识别findent,我不断收到以下提示信息:

通过pip使用--user选项安装findent.exe
来源:现代Fortran

在这里输入图片描述

以下是我采取的步骤:

  1. 在Visual Studio Code中明确选择了Python解释器,路径设置为C:\Users\<userName>\AppData\Local\Programs\Python\Python312\python.exe
  2. 使用以下命令安装所需的包:
    • C:\Users\<userName>\AppData\Local\Programs\Python\Python312\Scripts\pip.exe install findent --user
    • C:\Users\<userName>\AppData\Local\Programs\Python\Python312\Scripts\pip.exe install fortran-language-server
    • C:\Users\<userName>\AppData\Local\Programs\Python\Python312\Scripts\pip.exe install fprettify
  3. 在我的settings.json中添加了以下内容,以确保VS Code终端能够识别通过pip安装的脚本:
    "terminal.integrated.env.windows": {
        "PATH": "${env:PATH};C:\\Users\\<userName>\\AppData\\Roaming\\Python\\Scripts;"
    }
    

尽管进行了这些配置,Fortran代码的缩进、美化和格式化功能仍然无法使用,我一直看到安装findent的提示。

有没有人遇到过类似的问题,或者能提供一些关于我的设置中可能缺失或配置错误的见解?

1 个回答

1

在现代Fortran中,Windows自动检测Python包现在有点问题,具体可以查看这个PR和这个GSoC项目

解决方案1:快速方法

对于那些没有将默认pip位置添加到他们的PATH中的用户,有一个非常简单、跨平台的解决方法,可以在这个评论中找到。

解决方案2:详细方法

如果你想在使用前面提到的解决方法的情况下让它工作,你需要:

  • 首先安装现代Fortran的预发布版本
  • 为了让调试更简单,将选项fortran.logging.level设置为DEBUG,这样你的VS Code输出面板中就会显示各种有用的信息。

格式化

  • 在第二步安装fprettify时,复制pip安装.exe的目录
  • 用这个目录设置现代Fortran选项fortran.formatting.path(只需目录,不包括)。

语言服务器

  • 你必须使用fortls而不是fortran-language-server。通过pip install fortls --pre来安装预发布版本(强烈推荐)。
  • 和格式化器一样,复制pip安装fortls.exe的目录
  • 在你的VS Code设置中,将现代Fortran选项fortran.fortls.path设置为安装目录加上fortls.exe(有点烦的是,格式化器和这个选项需要的输入稍有不同,我们会在未来的版本中修复这个问题)。

在输出面板中的调试日志在你设置机器时会非常有帮助。


顺便提一下,我认为第三步对于任何VS Code扩展都不应该有效,除非它们特别实现了这样的功能。VS Code扩展环境对VS Code终端的PATH一无所知。我认为终端是从VS Code环境继承的,而不是反过来。

撰写回答