Skip to main content
CI and release pipeline PyPI PyPI - Python Version PyPI - License

pylint-venv

Pylint does not respect the currently activated virtualenv if it is not installed in every virtual environment individually. This module provides a Pylint init-hook to use the same Pylint installation with different virtual environments.

Installation

pip install pylint-venv

Add the hook to your Pylint configuration. See the section below corresponding to the type of configuration file you use.

Configure with pyproject.toml

Add the following to your pyproject.toml:

[tool.pylint.MAIN]
init-hook = """
try: import pylint_venv
except ImportError: pass
else: pylint_venv.inithook()
"""

Configure with .pylintrc

Add the following to your .pylintrc:

[MAIN]
init-hook=
    try: import pylint_venv
    except ImportError: pass
    else: pylint_venv.inithook()

If you add this to your ~/.pylintrc in your home directory, it will be applied to all projects by default.

Usage

The hook will then be used automatically if

  • a virtualenv without pylint is active,

  • or a Conda environment without pylint is active,

  • or no environment is active but your CWD contains virtualenv directory.

Anything listed in the PYLINT_VENV_PATH environment variable is considered a virtualenv directory. The default, if the variable is unset, is .venv. Use a colon (:) as path separator. Example for checking directories .venv and .virtualenv:

PYLINT_VENV_PATH=.venv:.virtualenv

You can also call the hook via a command line argument:

$ pylint --init-hook="import pylint_venv; pylint_venv.inithook()"

This way you can also explicitly set an environment to be used:

$ pylint --init-hook="import pylint_venv; pylint_venv.inithook('$(pwd)/env')"

If pylint itself is installed in a virtualenv, then you can ignore it by passing force_venv_activation=True to force the activation of a different virtualenv:

$ pylint --init-hook="import pylint_venv; pylint_venv.inithook(force_venv_activation=True)"

This will try to automatically detect virtualenv and activate it.

Troubleshooting

General

pylint_venv fails to import

Most likely pylint-venv is not installed in the same virtual environment as pylint. Either make sure to ensure pylint-venv into the same virtual environment as pylint, or add the appropriate path in the init hook:

import sys
sys.path.append("/path/to/installation/folder/of/pylint_venv")
pylint_venv breaks parsing with tools

When tools call pylint with -f json, an extra line may break the parser, as the output is no longer valid json. To avoid printing “using venv …”, pass quiet=True to inithook

$ pylint -f json --init-hook="import pylint_venv; pylint_venv.inithook(quiet=True)"
Virtual environment does not get used (installed modules are reported as ‘unable to import’)

Most likely the virtual environment does not get activated because pylint itself runs in a virtual environment. You can force the activation of the virtual environment with the force_venv_activation=True flag to the pylint_venv.inithook function.

Homebrew

Homebrew installs pylint into a separate virtual environment, thus you will need to set the force_venv_activation=True flag. This also means, that pylint_venv will be in a different search path and you must add the proper path to sys.path. You can use the following configuration adjusted to your Python version:

[MAIN]
init-hook=
    import sys
    sys.path.append("/usr/local/lib/python3.8/site-packages")
    try: import pylint_venv
    except ImportError: pass
    else: pylint_venv.inithook(force_venv_activation=True)

Release files for pylint-venv 3.0.4

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pylint-venv 3.0.4
File Size Uploaded
pylint_venv-3.0.4.tar.gz 5.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for pylint-venv 3.0.4
File Interpreter ABI Platform
pylint_venv-3.0.4-py3-none-any.whl Python 3 none any Details

Total release size: 11.1 kB

Release files / pylint_venv-3.0.4.tar.gz

Download URL pylint_venv-3.0.4.tar.gz
Size 5.8 kB
Tags Source
SHA-256 checksum
How to use checksums
4c71c2ad14fc0549699440bcc460994ffddc1481b9078404b4c43d2806ef0f59
BLAKE2b-256 checksum
How to use checksums
48ac88e53ad1362392e68a36a4f08ca82c76e6cb6321d8ecba901cca5a70dcc1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.8.4 CPython/3.13.0 Linux/6.5.0-1025-azure

Release files / pylint_venv-3.0.4-py3-none-any.whl

Download URL pylint_venv-3.0.4-py3-none-any.whl
Size 5.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
31006a3df398f58f962c9e5620e756b284e8b2bc490594ce5ee5da41920cb32c
BLAKE2b-256 checksum
How to use checksums
a610040e1928236e3d34b26639e3427df88c7249a85aadc621cea2158589b4f8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.8.4 CPython/3.13.0 Linux/6.5.0-1025-azure

Release history Release notifications | RSS feed

This release

3.0.4 This release

2 release files

3.0.3

2 release files

3.0.2

2 release files

3.0.1

2 release files

3.0.0

2 release files

2.3.0

2 release files

2.2.0

2 release files

2.1.1

2 release files

2.1.0

2 release files

2.0.0

2 release files

1.1.0

1 release file

1.0

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page