You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Error when running on code inside venv containing typing-extensions #11477
When running mypy on code installed in a virtualenv environment, mypy will fail outright if the environment contains typing-extensions.
To Reproduce
See repo containing a minimal example. The steps below describe the general idea:
Create a fresh virtual environment.
Create a minimal library with a setup.py that lists typing-extensions in install_requires.
Install the library to the virtual environment.
Run mypy on a file inside the environment that is part of the library (mypy venv/lib/python3.Y/site-packages/my_project/hello.py).
Expected Behavior
mypy would report errors in hello.py, if any, or exit with 0 if none.
Actual Behavior
mypy doesn't check hello.py, complaining that it found a typing_extensions.py in the environment:
mypy: "project-venv/lib/python3.6/site-packages/typing_extensions.py" shadows library module "typing_extensions"
note: A user-defined top-level module with name "typing_extensions" is not supported
Your Environment
Mypy version used: 0.910.
Mypy command-line flags: none
Mypy configuration options from mypy.ini (and other config files): none
You are running mypy against something in site-packages, which we generally discourage for this reason that you are running into. You should run mypy against your package sources when they are not installed. It is supposed to raise an error here however about running against something in site packages...
The reason I'm running against site-packages is because of a non-standard build workflow. In particular, I need to rewrite the directory structure of my source Python files to look slightly differently. So I'm constructing an intermediate environment to run mypy (and pytest) against that has both the rewritten source files and the dependencies from pip.
The reason I'm running against site-packages is because of a non-standard build workflow. In particular, I need to rewrite the directory structure of my source Python files to look slightly differently. So I'm constructing an intermediate environment to run mypy (and pytest) against that has both the rewritten source files and the dependencies from pip.
Is there no way around this from the mypy side?
I encountered a similar issue when using the mypy-type-checker plugin in VSCode. I fixed it by removing the above path in python.analysis.extraPaths field.
Activity
emmatyping commentedon Nov 6, 2021
You are running mypy against something in site-packages, which we generally discourage for this reason that you are running into. You should run mypy against your package sources when they are not installed. It is supposed to raise an error here however about running against something in site packages...
kodek16 commentedon Nov 9, 2021
The reason I'm running against site-packages is because of a non-standard build workflow. In particular, I need to rewrite the directory structure of my source Python files to look slightly differently. So I'm constructing an intermediate environment to run mypy (and pytest) against that has both the rewritten source files and the dependencies from pip.
Is there no way around this from the mypy side?
stfujnkk commentedon May 11, 2024
I encountered a similar issue when using the mypy-type-checker plugin in VSCode. I fixed it by removing the above path in
python.analysis.extraPathsfield.