Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Error when running on code inside venv containing typing-extensions #11477

Open
kodek16 opened this issue Nov 5, 2021 · 3 comments
Open

Error when running on code inside venv containing typing-extensions #11477

kodek16 opened this issue Nov 5, 2021 · 3 comments
Labels
bug mypy got something wrong diagnostics

Comments

@kodek16
Copy link

kodek16 commented Nov 5, 2021

Bug Report

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:

  1. Create a fresh virtual environment.
  2. Create a minimal library with a setup.py that lists typing-extensions in install_requires.
  3. Install the library to the virtual environment.
  4. 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
  • Python version used: multiple (3.6.8, 3.8.8).
  • Operating system and version: CentOS 7
@kodek16 kodek16 added the bug mypy got something wrong label Nov 5, 2021
@ethanhs
Copy link
Collaborator

ethanhs commented 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
Copy link
Author

kodek16 commented 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
Copy link

stfujnkk commented May 11, 2024

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?

image

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug mypy got something wrong diagnostics
Projects
None yet
Development

No branches or pull requests

4 participants