AtomLinter / linter-pylint

Atom linter plugin for Python, using pylint.
60 stars 48 forks source link

Setting "Executable Path" to "python3.8 -m pylint" doesn't work... #272

Open Guerteltier opened 5 years ago

Guerteltier commented 5 years ago

I'm getting the following error:

[Linter] Error running Pylint Error: Failed to spawn command `python3.8 -m pylint`. Make sure `python3.8 -m pylint` is installed and on your PATH
    at /home/jonathan/.atom/packages/linter-pylama/node_modules/atom-linter/lib/helpers.js:130
    at <anonymous>
    at process._tickCallback (internal/process/next_tick.js:188)

However in the terminal it works perfectly fine...

Guerteltier commented 5 years ago

For some reason it now doesn't even work anymore with default settings...

[Linter] Error running Pylint Error: <unknown>:2890: SyntaxWarning: invalid escape sequence \*
<unknown>:2919: SyntaxWarning: invalid escape sequence \*
<unknown>:2953: SyntaxWarning: invalid escape sequence \*
<unknown>:441: SyntaxWarning: invalid escape sequence \*
<unknown>:603: SyntaxWarning: invalid escape sequence \.
<unknown>:166: SyntaxWarning: invalid escape sequence \*
<unknown>:498: SyntaxWarning: invalid escape sequence \,
<unknown>:578: SyntaxWarning: invalid escape sequence \*
<unknown>:172: SyntaxWarning: invalid escape sequence \*
    at Object.<anonymous> (/home/jonathan/.atom/packages/linter-pylint/lib/main.js:161:17)
    at Generator.next (<anonymous>)
    at step (/home/jonathan/.atom/packages/linter-pylint/lib/main.js:7:273)
    at <anonymous>
Guerteltier commented 5 years ago

I can't even use it anymore... WTF

Guerteltier commented 5 years ago

OK, interestingly running pylint --version shows that it runs on Python 3.8.0a1... I installed it on Python 3.8.0a1 just before changing the setting... sudo python3.8 -m pip install pylint seems to have overwritten what was installed by apt... Completely removing and reinstalling with apt after uninstalling it from Python 3.8.0a1 doesn't help...

Guerteltier commented 5 years ago

Also, there seem to be 2 packages for Debian pylint and pylint3, where "pylint" seems to be for Python 2! https://pylint.org/ doesn't mention that there are 2 packages... I also didn't notice (until now) that I used the Python 2 version. I BTW got it working again by setting "Executable Path" to "pylint3"... I wonder why I can't restore the original pylint command... (Which seemingly was for Python 2.) I also wonder why the command pylint3 works when it executes pylint 2.2.2 on Python 3.7.2+, but pylint doesn't when it too executes pylint3 2.2.2, but on Python 3.8.0a1... And I of course wonder why I didn't notice that the command pylint used Python 2... It seems that I had also already overwritten it previously and it seems that the command pylint already executed pylint 2.2.2 on Python 3.7.2+, but it seems like it normally would execute the Python 2 version and I wonder why https://pylint.org/ doesn't mention that...

Guerteltier commented 5 years ago

I was able to restore pylint to the Python 2 version but I still don't know how to use it with (my self compiled) Python 3.8.0a1...

Arcanemagus commented 5 years ago

The Executable Path setting is the path to pylint (or whatever it is called, which may be pylint3 for you). It is not a list of commands that get executed (like you seem to have originally had it set to).

You'll need to launch Atom from an environment where whatever you have set in that setting can run without problems.

benjamin-kirkbride commented 5 years ago

I put a shell script in my /usr/local/bin/ to fix this issue.

doctortee commented 5 years ago

I put a shell script in my /usr/local/bin/ to fix this issue.

I'm also using a custom shell script for this (as I like to use camelCase instead of default style, but your plugin doesn't allow to set arguments to PyLint), but for an unknown reason it doesn't work (I only get a F0001 error when I use this)

# !/bin/bash
#

pylint3 --module-naming-style=camelCase --const-naming-style=camelCase --class-naming-style=camelCase --function-naming-style=camelCase --method-naming-style=camelCase --attr-naming-style=camelCase --argument-naming-style=camelCase --variable-naming-style=camelCase --class-attribute-naming-style=camelCase --inlinevar-naming-style=camelCase $1

How do you pass the file path to pylint ?

goldclam commented 4 years ago

jarcchen:~/myapp/pythonwww$ pip3 show pylint Name: pylint Version: 2.5.0 Summary: python code static checker Home-page: https://github.com/PyCQA/pylint Author: Python Code Quality Authority Author-email: code-quality@python.org License: GPL Location: /home/jarcchen/.local/lib/python3.8/site-packages Requires: toml, isort, astroid, mccabe Required-by: jarcchen:~/myapp/pythonwww$ pylint --version No config file found, using default configuration pylint 1.9.5, astroid 1.6.6 Python 2.7.18 (default, May 2 2020, 18:50:51) [GCC 9.3.0] so how could change python2's pylint to python3's

--from ubuntu20--

tigexplorer commented 4 years ago

~/myapp/pythonwww$ pylint --version

No config file found, using default configuration pylint 1.9.5, astroid 1.6.6 Python 2.7.18 (default, May 2 2020, 18:50:51) [GCC 9.3.0] so how could change python2's pylint to python3's

--from ubuntu20--

I've this setup

which pylint
/home/myuser/.local/bin/pylint
pylint --version
No config file found, using default configuration
pylint 1.9.4, 
astroid 1.6.6
Python 2.7.18 (default, Aug  4 2020, 11:16:42) 
[GCC 9.3.0]

When I'm running python pylint myfile.py It performs a python2 linter.

When I'm running python3 pylint myfile.py I get this error python3: can't open file 'pylint': [Errno 2] No such file or directory

When I'm running this, a python3 linter is successfully python3 /home/myuser/.local/bin/pylint myfile.py

How can I use this in Atom?

I'm on ubuntu 20.4