Mik*_*rev 4 python pylint visual-studio-code
我在Mac上使用Visual Studio代码作为python IDE,一切都适合我.但几周前我开始使用Windows.突然间,我无法在我在Mac上启动的项目中使用pylint.
我有
pylintrc 初始挂钩的文件将项目添加到根目录中的pythonpath(由pylint使用--generate-rcfile生成).使用相同的参数,在Linux(Ubuntu 16.10)和Mac上一切正常.并不适用于两台Windows机器.似乎pylint不会运行.
我哪里做错了?
更新:
我发现pylint正在获取UnicodeDecodingError:
##########Linting Output - pylint##########
Traceback (most recent call last):
File "C:\Program Files\Anaconda3\Scripts\pylint-script.py", line 5, in <module>
sys.exit(pylint.run_pylint())
File "C:\Program Files\Anaconda3\lib\site-packages\pylint\__init__.py", line 13, in run_pylint
Run(sys.argv[1:])
File "C:\Program Files\Anaconda3\lib\site-packages\pylint\lint.py", line 1264, in __init__
linter.read_config_file()
File "C:\Program Files\Anaconda3\lib\site-packages\pylint\config.py", line 627, in read_config_file
parser.readfp(fp)
File "C:\Program Files\Anaconda3\lib\configparser.py", line 760, in readfp
self.read_file(fp, source=filename)
File "C:\Program Files\Anaconda3\lib\configparser.py", line 715, in read_file
self._read(f, source)
File "C:\Program Files\Anaconda3\lib\configparser.py", line 1012, in _read
for lineno, line in enumerate(fp, start=1):
File "C:\Program Files\Anaconda3\lib\codecs.py", line 321, in decode
(result, consumed) = self._buffer_decode(data, self.errors, final)
File "C:\Program Files\Anaconda3\lib\encodings\utf_8_sig.py", line 69, in _buffer_decode
return codecs.utf_8_decode(input, errors, final)
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xff in position 0: invalid start byte
Run Code Online (Sandbox Code Playgroud)
更新2
我使用自动生成的pylintrc文件收到此错误.没有这个文件,一切正常(除了我不能沉默一些通知,使用pylint_flask插件并进行初始挂钩).
更新3:propper解决方案(感谢Elijah W. Gagne的评论) 这很好:
pylint --generate-rcfile | out-file -encoding utf8 .pylintrc
Run Code Online (Sandbox Code Playgroud)
小智 8
我在Windows中遇到同样的问题,我pylintrc通过以下方式获取文件:
pylint --generate-rcfile > ~/.pylintrc
Run Code Online (Sandbox Code Playgroud)
当我用notepad++它来打开它时,编码不是utf8,我将其更改为utf8,然后它可以工作.
到目前为止,我已经通过使用 mac 上的 pylintrc 文件的副本解决了这个问题。据我了解,这个问题来自 Windows Powershell。当我做
pylint --generate-rcfile > pylintrc
Run Code Online (Sandbox Code Playgroud)
它创建一个带有编码的文件cp-1251。
解决方案是复制数据并将其粘贴到 IDE/文本编辑器中以将其另存为utf-8文件。或者简单地(就像我一样)从另一个系统或网络复制它。