Q:

Unresolved reference issue in PyCharm

I have a directory structure
├── simulate.py
├── src
│   ├── networkAlgorithm.py
│   ├── ...

And I can access the network module with sys.path.insert().    
import sys
import os.path
sys.path.insert(0, "./src")
from networkAlgorithm import *

However, pycharm complains that it cannot access the module. How can I teach pycham to resolve the reference?

A:

Manually adding it as you have done is indeed one way of doing this, but there is a simpler method, and that is by simply telling pycharm that you want to add the src folder as a source root, and then adding the sources root to your python path.
This way, you don't have to hard code things into your interpreter's settings:

Add src as a source content root:

                           

Then make sure to add add sources to your PYTHONPATH:

Now imports will be resolved:

                     

This way, you can add whatever you want as a source root, and things will simply work. If you unmarked it as a source root however, you will get an error:
                                 

After all this don't forget to restart. In PyCharm menu select: File --> Invalidate Caches / Restart 

A:

check for __init__.py file in src folder 
add the src folder as a source root
Then make sure to add add sources to your PYTHONPATH (see above)
in PyCharm menu select: File --> Invalidate Caches / Restart 

A:

If anyone is still looking at this, the accepted answer still works for PyCharm 2016.3 when I tried it. The UI might have changed, but the options are still the same. 
ie. Right click on your root folder --> 'Mark Directory As' --> Source Root

