The system I am currently using has Anaconda pre-installed by root under system locations.

To install user packages, we need to install them to a user location. For example, to install pylint, we need to add --user option for pip install:

pip install --user pylint


However, when I use pylint command, I get the following error:

Since there is no error when installing pylint, I think there is no problem with installation. I use the find command and find that pylint executable is placed under ~/.local/bin, which is not part of the PATH variable. So the reason is that pylint executable is installed into a directory that isn't in your PATH.

A more reliable way to find where the pylint executable is installed is to list the files which are installed in pylint with the pip show command:

pip show -f pylint


You will see part of the output like the following:

Location: /home/xxxx/.local/lib/python3.6/site-packages
Requires: astroid, mccabe, isort
Required-by:
Files:
../../../bin/epylint
../../../bin/pylint
../../../bin/pyreverse
../../../bin/symilar


So the location of pylint executable is $HOME/.local/bin/. You should add the directory to system PATH to use pylint: export PATH=$HOME/.local/bin:\$PATH


For flake8, the same issue exists and the solution is the same, which I will not elaborate on.