Visual Studio Code 不识别 findent 安装,尽管 Python 解释器和 PATH 配置正确
我在Windows上使用Visual Studio Code的现代Fortran扩展时遇到了一个持续的问题。虽然我已经正确安装了findent
、fortran-language-server
和fprettify
,并且使用特定的Python解释器更新了VS Code中的用户settings.json
以包含必要的路径,但这个扩展似乎还是无法识别findent
,我不断收到以下提示信息:
通过pip使用--user选项安装findent.exe
来源:现代Fortran
以下是我采取的步骤:
- 在Visual Studio Code中明确选择了Python解释器,路径设置为
C:\Users\<userName>\AppData\Local\Programs\Python\Python312\python.exe
。 - 使用以下命令安装所需的包:
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
- 在我的
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环境继承的,而不是反过来。