others-how to solve ModuleNotFoundError no module found error in python ?

1. Purpose

In this post, I will show you how to solve ModuleNotFoundError: No module named error in python, just as follows:

When I trying to start a python problem, I got the following error:

(test_env) ➜  test_chatserver git:(master) ✗ python ui/zzz_test/test_vectorstore_query.py 
Traceback (most recent call last):
  File "/Users/bswen/PycharmProjects/test_vectorstore_query.py", line 11, in <module>
    from server.knowledge_base.kb_service.base import EmbeddingsFunAdapter
ModuleNotFoundError: No module named 'server'

2. Solution

You can solve this problem by following these steps:

We should check our environment variable PYTHONPATH, because PYTHONPATH is the Python search path. By default, the modules we import will be searched from PYTHONPATH.

1) First, check PYTHONPATH environment variable

(test_env) ➜  test_chatserver git:(master) ✗ python -c 'import sys; print(sys.path)' 
['', '/Users/bswen/miniconda3/envs/test_env/lib/python310.zip', '/Users/bswen/miniconda3/envs/test_env/lib/python3.10', '/Users/bswen/miniconda3/envs/test_env/lib/python3.10/lib-dynload', '/Users/bswen/miniconda3/envs/test_env/lib/python3.10/site-packages']

2) Then, add current directory to PYTHONPATH

(test_env) ➜  test_chatserver git:(master)export PYTHONPATH=.                                                                                        
(test_env) ➜  test_chatserver git:(master) ✗ python -c 'import sys; print(sys.path)' 
['', '/Users/bswen/PycharmProjects/LangchainProjects/test_brain/test_chatserver', '/Users/bswen/miniconda3/envs/test_env/lib/python310.zip', '/Users/bswen/miniconda3/envs/test_env/lib/python3.10', '/Users/bswen/miniconda3/envs/test_env/lib/python3.10/lib-dynload', '/Users/bswen/miniconda3/envs/test_env/lib/python3.10/site-packages']

Now run the app again, it works!

3. How to set PYTHONPATH

1) Method 1: Add path in command window

export PYTHONPATH=$PYTHONPATH:/home/bswen

Note: This method only takes effect in the current command window, that is, if you open a new Terminal window and navigate to the current directory, the path you just added will not be printed in PYTHONPATH.

2) Method 2: Add in python code:

import sys sys.path.append('/home/bswen/')

4. Summary

In this post, I demonstrated how to solve the module not found error in python, the keypoint is to check and change your PYTHONPATH. That’s it, thanks for your reading.