Search code examples
pythonpippycharmcondamodulenotfounderror

Why can't Python find the module I installed?


Presently I'm using Python on a Windows system. I installed Python 3.10 from Anaconda and also the Pycharm IDE. I have ensured that Python is in the correct path in the environment variable. I have also replicated this problem using two different versions of Python, 3.10 and 3.9.

Very simply, in PyCharm, I open a terminal and type

conda install -c numpy numpy. 

Then, I write a new "main.py" script. I have one line: "import numpy". I receive the error:

Traceback (most recent call last):
  File "C:\Users\---\PycharmProjects\pythonProject3\main.py", line 17, in <module>
    import numpy
ModuleNotFoundError: No module named 'numpy'

What am I doing wrong?

Going on advice from a friend, I created a new PyCharm project sitting not in my user directory but on the C: drive, and got the same error. Finally, when trying to re-install the package using either using either pip or conda, I get this message:

# All requested packages already installed.

Solution

  • You have 2 versions of Python:

    1. Default Python (used everytime you open your command prompt and type python or python3)
    2. Anaconda is installing packages in a virtual environment, using it's own Python (it is located in a different path)

    You can see the path of your installed python using python -c "import os, sys; print(os.path.dirname(sys.executable))"

    You have 2 Options:

    1. Configure the PyCharm in order to use the anaconda Python. https://www.jetbrains.com/help/pycharm/configuring-python-interpreter.html#view_list
    2. Open a command prompt in the project's folder (you can do it easily using PyCharm). Type conda env list. This will show you all available anaconda virtual environments. Choose 1 of them and type conda activate <env_name>, where <env_name>=the name of the environment. Then, run your program using python <name_of_your_program>

    You can see the paths where the anaconda environments and packages are installed using conda info