Import "X" could not be resolved from source Pylance [Fixed]

avatar
Borislav Hadzhiev

Last updated: Apr 10, 2024
5 min

banner

# Import "X" could not be resolved from source Pylance [Fixed]

The error "Import "X" could not be resolved from source Pylance" occurs when the imported module is not installed or you have selected the incorrect Python interpreter in your IDE (e.g. Visual Studio Code).

To solve the error, install the module and select the correct Python interpreter in your IDE.

import requests could not be resolved from source

shell
Import "requests" could not be resolved from source Pylance(reportMissingModuleSource) [Ln 1, Col 8]

Make sure you have the specific module installed. You can type "pypi module-name" in Google to get instructions on the installation command.

google pypi module

Click on the Pypi page of the package and look at the installation command.

find installation command

Note that some modules differ in the name of the import and the name of the actual module you have to install.

Here is an example of how I'd install the requests module.

shell
# ๐Ÿ‘‡๏ธ In a virtual environment or using Python 2 pip install requests # ๐Ÿ‘‡๏ธ For python 3 (could also be pip3.10 depending on your version) pip3 install requests # ๐Ÿ‘‡๏ธ If you get a permissions error pip install requests --user # ๐Ÿ‘‡๏ธ If you don't have pip in your PATH environment variable python -m pip install requests # ๐Ÿ‘‡๏ธ For python 3 (could also be pip3.10 depending on your version) python3 -m pip install requests # ๐Ÿ‘‡๏ธ Using py alias (Windows) py -m pip install requests # ๐Ÿ‘‡๏ธ For Anaconda conda install -c anaconda requests # ๐Ÿ‘‡๏ธ For Jupyter Notebook !pip install requests
Make sure to replace requests with the actual name of the module you're trying to install.

If the error persists, get your Python version and make sure you are installing the package using the correct Python version.

shell
python --version

get python version

For example, my Python version is 3.10.4, so I would install the requests package with pip3.10 install <package-name>.

shell
pip3.10 install requests

Notice that the version number corresponds to the version of pip I'm using.

If the error persists, make sure your IDE is using the correct version of Python.

# Make sure the correct Python interpreter is selected in your IDE

If you have multiple Python versions installed on your machine, you might have installed the package using the incorrect version or your IDE might be set up to use a different version.

For example, In Visual Studio Code you can:

  1. Press CTRL + Shift + P or (โŒ˜ + Shift + P on macOS) to open the command palette.

Then type "Python select interpreter" in the search field.

python select interpreter

  1. Select the correct Python version from the dropdown menu.

select correct python version

Your IDE should be using the same version of Python (including the virtual environment) that you are using to install packages from your terminal.

If the error persists, try restarting your IDE and development server/script. VSCode often glitches and a reboot resolves the issue.

If the error is not resolved, try to use the Visual Studio Code terminal to install the module.

You can press CTRL + ` (Backtick) on your keyboard to open the Visual Studio code terminal.

You can also open the terminal in Visual Studio Code by pressing CTRL+Shift+P and then type "View: Toggle Terminal".

open vscode terminal

Once you open the terminal, Visual Studio Code will automatically activate your virtual environment (if you have one).

Run the pip install <module-name> command.

shell
pip install requests
Make sure to replace requests with the actual name of the module you're trying to install.

If the error persists, try to select the Python interpreter by specifying the path:

  1. Press CTRL + Shift + P or (โŒ˜ + Shift + P on Mac) to open the command palette.
  2. Type "Python select interpreter" in the field.

python select interpreter

  1. Select "Enter interpreter path...".

select enter interpreter path

  1. Click on "Find".

click find

  1. In the window that opens, navigate to your Python executable:
  • If you have a virtual environment on Windows, click on your venv folder, then double-click on the Scripts folder, select the python.exe file and then Select interpreter.

windows specify path to interpreter

  • If you have a virtual environment on macOS or Linux, click on your venv folder, then double-click on the bin folder, select the python file and then Select interpreter.

macos linux specify path to interpreter

  • If you don't have a virtual environment, use one of the following commands to get your path to your python.exe or python executable, specify the path to the file and select the executable.
cmd
where python python -c "import os, sys; print(os.path.dirname(sys.executable))"

find python path

If the error persists, try restarting your IDE and development server/script.

# Try to install the module in a Virtual environment

  1. Create a virtual environment.
  2. Activate the virtual environment.
  3. Run the pip install <module-name> command with the virtual environment active.
shell
# ๐Ÿ‘‡๏ธ Use the correct version of Python when creating VENV python -m venv venv # ๐Ÿ‘‡๏ธ Activate on Unix or MacOS source venv/bin/activate # ๐Ÿ‘‡๏ธ Activate on Windows (cmd.exe) venv\Scripts\activate.bat # ๐Ÿ‘‡๏ธ Activate on Windows (PowerShell) venv\Scripts\Activate.ps1 # ๐Ÿ‘‡๏ธ install the specific package in the virtual environment pip install requests
Make sure to replace requests with the actual name of the module you're trying to install.

If the python -m venv venv command doesn't work, try the following 2 commands:

  • py -m venv venv
  • python3 -m venv venv
Make sure to use the correct command to activate your virtual environment depending on your operating system and your shell.

Your virtual environment will use the version of Python that was used to create it.

# Make sure you haven't named a file or a variable module_name

For example, if you were trying to import the requests module, make sure you haven't named a module in your project as requests.py because that would shadow the original requests module.

You also shouldn't be declaring a variable named requests as that would also shadow the original module.

If the error is not resolved, try to uninstall the package and then install it.

shell
# ๐Ÿ‘‡๏ธ Check if you have requests installed pip show requests # ๐Ÿ‘‡๏ธ Uninstall requests pip uninstall requests # ๐Ÿ‘‡๏ธ If you don't have pip set up in PATH python -m pip uninstall requests # ๐Ÿ‘‡๏ธ install requests pip install requests # ๐Ÿ‘‡๏ธ If you don't have pip set up in PATH python -m pip install requests
Make sure to replace requests with the actual name of the module you're trying to install.

Try restarting your IDE and development server/script.

You can also try to upgrade the version of the requests package.

shell
pip install requests --upgrade # ๐Ÿ‘‡๏ธ If you don't have pip set up in PATH python -m pip install requests --upgrade

You can check if you have the module installed by running the pip show <module-name> command.

shell
# ๐Ÿ‘‡๏ธ Check if you have requests installed pip show requests # ๐Ÿ‘‡๏ธ If you don't have pip set up in PATH python -m pip show requests

The pip show <module-name> command will either state that the package is not installed or show a bunch of information about the package, including the location where the package is installed.

If the package is not installed, make sure your IDE is using the correct version of Python.

# Alternatively, use a comment to disable the warning

If none of the suggestions helped, you can use a comment to disable the Pylance warning in your IDE.

main.py
import requests # type: ignore print(requests)

You simply have to add the # type: ignore command on the same line as the import statement to disable the check for the specific import.

I wrote a book in which I share everything I know about how to become a better, more efficient programmer.
book cover
You can use the search field on my Home Page to filter through all of my articles.

Copyright ยฉ 2024 Borislav Hadzhiev