必须提供 lint.py 的路径,找不到
Posted
技术标签:
【中文标题】必须提供 lint.py 的路径,找不到【英文标题】:Have to provide path to lint.py, can't find it 【发布时间】:2014-09-14 00:08:52 【问题描述】:我正在尝试将 SublimeLinter-pylint 安装到我的 Sublime Text 3 中。它告诉我按照说明进行操作,因为它(大概)找不到 lint.py (我在此之前尝试安装 Pylinter,结果付诸东流,所以我假设这是同样的问题)。
我已经查看了类似问题的其他答案,但它们不适用于我。
有人说要使用 SublimeLinter,我正在这样做。我已经安装了它,并且我在它上面安装的 php/JS linters 工作得很好。
然后它说要安装我已经使用 pip 完成的 pylint (duh)。 作为参考,终端打印中的 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 时,它告诉我遵循安装说明here。这告诉我我必须按照here 提供的说明进行操作。我已经按照要求完成了,'hash - r which pylint' 什么也没打印。没有路径,没有错误,没有“找不到模块”,只是空白。不过,'hash - r which asdfjkl' 会给出错误,所以据我所知,这可以正常工作,并且 pylint 也可以正常工作,正如我使用 python 文件验证的那样。
从未有任何与 ST3 相关的事情如此令人困惑和烦人;我几乎已经放弃了这一点,并且将在没有 linter 的情况下继续进行(它是 python,所以至少调试还不错)。
有什么建议吗?
【问题讨论】:
【参考方案1】:我处理了配置 SublimeLinter 的 pylint 插件的类似问题。从pylint --version
的输出中,我看到您安装了py3 版本的pylint(可能是通过pip3 install pylint
或类似方式)。
默认情况下,SublimeLinter 正在寻找 pylint 的 py2 版本。如果您现在安装了 pylint 的 py2 版本(即pip2 install pylint
),它可能会工作。无论如何,一般来说,为您将要编写的代码使用适当版本的 pylint 很重要,否则您会收到错误的 lint 报告。
理论上,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
,它将打印错误。那是因为hash -r
转储了所有记住的位置。
我不完全确定您为什么被指示执行 hash -r
,但请放心,没有任何输出是预期的输出。
【讨论】:
【参考方案2】:我想你只需要输入
which pylint
你应该看到类似
的东西/usr/bin/pylint
不确定hash -r
应该做什么
【讨论】:
仍然无法让它工作,但这确实帮助了我,谢谢。以上是关于必须提供 lint.py 的路径,找不到的主要内容,如果未能解决你的问题,请参考以下文章
找不到指定项目的“lint”目标或数据路径“”必须具有必需的属性“lintFilePatterns”