【问题标题】:Have to provide path to lint.py, can't find it必须提供 lint.py 的路径,找不到
【发布时间】: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,所以至少调试还不错)。

有什么建议吗?

【问题讨论】:

    标签: python sublimetext python-3.4 sublimelinter


    【解决方案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 应该做什么

      【讨论】:

      • 仍然无法让它工作,但这确实帮助了我,谢谢。
      猜你喜欢
      • 2018-12-27
      • 2021-07-17
      • 1970-01-01
      • 2017-08-31
      • 1970-01-01
      • 2020-11-26
      • 2013-08-10
      • 1970-01-01
      • 2021-05-12
      相关资源
      最近更新 更多