必须提供lint.py的路径,但找不到它

4 投票
2 回答
5099 浏览
提问于 2025-04-18 14:22

我正在尝试在我的Sublime Text 3中安装SublimeLinter-pylint。系统提示我需要按照说明进行操作,因为它(可能)找不到lint.py(我之前尝试安装Pylinter,但失败了,所以我猜这也是同样的问题)。

我已经查看了其他类似问题的回答,但对我来说都不适用。

其中一个说要使用SublimeLinter,我现在就是在用这个。我已经安装了它,并且我安装的PHP和JS的检查工具也都正常工作。

接着它说要安装pylint(这没错),我已经通过pip安装过了。为了确认,我在终端输入pylint --version,结果是:

No config file found, using default configuration
pylint 1.2.1, 
astroid 1.1.1, common 0.62.0
Python 3.4.1 (v3.4.1:c0e311e010fc, May 18 2014, 00:54:21) 
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)]

所以我有点迷茫。目前我尝试通过Package Control安装SublimeLinter时,它让我去这里查看安装说明。这个说明告诉我需要按照这里提供的步骤进行操作。我按照指示做了,但输入'hash - r which pylint'什么都没打印出来。没有路径,没有错误,也没有“找不到模块”,就是空白。输入'hash - r which asdfjkl'会给出错误,所以我觉得这个是有效的,而pylint也在正常工作,我用一个python文件验证过。

与ST3相关的事情从来没有这么让人困惑和烦恼;我几乎放弃了这个,决定不使用检查工具(因为是python,所以调试还好)。

有什么建议吗?

2 个回答

2

我遇到过类似的问题,配置SublimeLinter的pylint插件时。通过运行pylint --version,我发现你安装的是py3版本的pylint(可能是通过pip3 install pylint或者类似的命令安装的)。

默认情况下,SublimeLinter是寻找py2版本的pylint。如果你现在安装py2版本的pylint(也就是pip2 install pylint),那可能就能正常工作了。总的来说,使用适合你编写代码的pylint版本是很重要的,不然你会收到错误的检查报告。

理论上,pylint插件应该能够检测到这一点。如果没有检测到,你需要编辑SublimeLinter的设置,添加一个python的元设置来指明你需要的python版本(比如"@python": 3.4)。具体可以参考文档 @ https://sublimelinter.readthedocs.org/en/latest/meta_settings.html#python-meta-setting

不过实际上,SublimeLinter-pylint在这方面目前有点问题。大部分责任可能在SublimeLinter插件上。你可以查看相关问题 @ https://github.com/SublimeLinter/SublimeLinter-pylint/issues/12

我注意到,当同时安装了两个版本的pylint时,SublimeLinter-pylint似乎工作得不错。其他人在支持论坛上也有类似的成功经验。当然,同一个bin文件夹里只能有一个pylint的可执行文件,但这没关系。

我运行了以下命令:

pip2 install --user -I pylint
pip3 install --user -I pylint

另外,hash是用来在PATH中查找命令的。例如,hash python && echo true || echo false会打印true。同样,hash wackpython && echo true || echo false会打印false。

如果你执行sudo rm /usr/bin/python来删除python,然后立刻运行type python && echo true || echo false,它会打印true,因为python仍然被记录为/usr/bin/python

在删除python后,如果你运行hash -r,然后再执行type python && echo true || echo false,它会打印false。这是因为hash -r清除了所有记住的位置。

我不太确定为什么你会被指示执行hash -r,但可以放心的是,没有输出是预期的结果。

4

我觉得你只需要输入

which pylint

你应该会看到类似这样的结果

/usr/bin/pylint

我不太确定 hash -r 是用来干嘛的

撰写回答