VS Community 2015 PTVS 2.2 PyLint 无模块错误

VS Community 2015 PTVS 2.2 PyLint No Module Errors

我有几个 Python 解决方案是使用 VS Community 2013 和 PTVS 2.1 创建的。 PyLint 在所有这些项目中都运行良好。

我最近安装了带有 PTVS 2.2 的 VS Community 2015。我可以毫无问题地在 VS 2015 中打开和 运行 这些 VS 2013 项目。但是,当我在 VS 2015 中使用 运行 PyLint 时,出现这样的错误(来自 VS 输出 window):

No config file found, using default configuration
************* Module spamreport.py
spamreport.py(1,0): warning F0001: No module named spamreport.py [F:fatal]
************* Module spamscan.py
spamscan.py(1,0): warning F0001: No module named spamscan.py [F:fatal]
************* Module spam_logger.py
spam_logger.py(1,0): warning F0001: No module named spam_logger.py [F:fatal]
************* Module utils.py
utils.py(1,0): warning F0001: No module named py in C:\Python34\lib\site-packages\pylint\checkers/['utils', 'py'] [F:fatal]

我可以从控制台 运行 PyLint 没问题。

D:\Users\Clayton\Code\Python\disqus>pylint spamscan.py


Report
======
131 statements analysed.

...

但是,如果我 运行 来自错误目录的 PyLint,我会得到类似的错误:

D:\Users\Clayton\Code\Python>pylint spamscan.py
************* Module spamscan.py
F:  1, 0: No module named spamscan.py (fatal)

这似乎表明 VS 2015 没有使用正确的工作目录。我检查了项目属性,项目文件夹和项目主页条目是正确的。我尝试从头开始重建解决方案作为 VS 2015 解决方案,但结果是一样的。

VS Community 2015 和 PTVS 2.2 均于几天前发布。还有其他人遇到这个问题吗?有什么解决办法吗?

我想你可能 运行 变成了 this change。基本上,它在2.1中使用工作目录,但现在它只使用项目文件目录(为了统一,因为这也是Intellisense作为root使用的目录)。

请注意,您可以通过编辑 .targets 来调整 Pylint 调用方式的大部分方面。查看 C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v14.0\Python Tools\Microsoft.PythonTools.targets(根据您的系统需要进行调整),然后在其中搜索 "Pylint"。您将看到目录是如何指定的。

我认为最好在下一个版本中更改它,使其使用自己的 MSBuild 属性,类似于 $(PylintWorkingDirectory),设置为 $(MSBuildProjectDirectory)默认情况下,但前提是您没有在项目文件中明确设置它。这样您就可以将其覆盖为您想要的任何内容,而无需使用全局 .targets。欢迎在 GitHub.

上提交此文件