pylint doesn't point to virtualenv python

后端 未结 10 1725
执笔经年
执笔经年 2021-01-07 19:19

I am pretty new to python and currenty I am trying to use pylint for checking code quality. I am getting a problem. My pylint doesn\'t point to virtualenv python interpreter

相关标签:
10条回答
  • You can get there by calling the target python interpreter:

    ./env/bin/python -m pylint ...
    
    # or in an already active env
    python -m pylint ...
    
    0 讨论(0)
  • 2021-01-07 19:44

    I'm using the Syntastic + Pylint combination, and since I have many different virtualenvs that I can work on at any given time, I've created a wrapper over the virtualenv command that, among some other things, installs pylint after all the requirements.

    That way, whenever I activate a virtualenv, I'll get its own pylint version.

    Hope this helps, and thanks for the tip on deleting the global one from @briford-wylie

    0 讨论(0)
  • 2021-01-07 19:45

    Noufal Ibrahim's answer works if you execute pylint manually.

    If you execute pylint from you editor/IDE, you need to configure the plugin correctly.

    • vim/syntastic
    • atom/linter-pylint
    • ...

    It can get tricky. This may be considered a bug of each IDE/plugin, but that's how it is.

    Modifying /usr/bin/pylint to write #!/usr/bin/env python as suggested in another answer fixes this for every use of pylint (manual use, or any editor integration).

    However, at least in Debian, using #!/usr/bin/python is a design choice, not a bug. See here for the rationale.

    To avoid modifying that system file, one can create a copy of /usr/bin/pylint in /usr/local/bin:

    cp /usr/bin/pylint /usr/local/bin/pylint
    vi usr/local/bin/pylint # Edit the file to use /usr/bin/env python
    

    This won't be broken by a pylint update, but still infringes Debian's "strongly preferred choice".

    This method requires root privileges. An unprivileged user may create an alias

    alias pylint='/usr/bin/env python $(which pylint)'.
    

    I always develop in virtualenv and I setup a postmkvirtualenv hook to install pylint and flake8 automatically when creating a virtualenv, so I don't use the versions ditributed by debian anymore.

    0 讨论(0)
  • 2021-01-07 19:53

    I know it's been a while since this question was answered, but I just thought I should leave this post here in case someone else runs into the same problem.

    If for some reason you need to keep pylint in the global space instead of your virtual environment, you can use the recommendation in here: PyLint + VirtualEnv.

    It basically says to configure your pylint using the init-hook and encoding version of a Python program that will use the global pylint and load the rest of the environment.

    0 讨论(0)
提交回复
热议问题