Python Forum

Full Version: ModuleNotFoundError: No module named 'athena_read'
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
I have file athena_read.py but i am still getting error ModuleNotFoundError: No module named 'athena_read' How can i overcome that err


Error:
   ~  cd ./Pictures/MikiForRaman  ✔    ~/Pictures/MikiForRaman  python m2c_read_athdata.py  ✔ /home/raman/Pictures/MikiForRaman/m2c_read_athdata.py:1: SyntaxWarning: invalid escape sequence '\d' """ /home/raman/Pictures/MikiForRaman/m2c_read_athdata.py:146: SyntaxWarning: invalid escape sequence '\m' ''' Traceback (most recent call last): File "/home/raman/Pictures/MikiForRaman/m2c_read_athdata.py", line 37, in <module> from pyfiles import read_athinput ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/raman/Pictures/MikiForRaman/pyfiles/__init__.py", line 3, in <module> from .unimesh import * File "/home/raman/Pictures/MikiForRaman/pyfiles/unimesh.py", line 15, in <module> import athena_read ModuleNotFoundError: No module named 'athena_read'    ~/Pi/MikiForRaman  cd ./pyfiles  1 ✘  3s     ~/Pi/M/pyfiles  ls  ✔ athena_read.py fm_torus.pyc metric.py read_athinput.py read_data.pyc athena_read.pyc __init__.py metric.pyc read_athinput.pyc unimesh.py fm_torus.py __init__.pyc __pycache__ read_data.py unimesh.pyc
It sounds like a path issue. Make sure the directory containing athena_read.py is in your Python path. You can do this by modifying your PYTHONPATH environment variable or adding the path directly to your script. import sys sys.path.append('/home/raman/Pictures/MikiForRaman/pyfiles') import athena_read This should help Python locate the athena_read module. Hope this helps!
I think your problem is the status of the pyfiles directory:
  • Is pyfiles just a directory containing Python modules that you want to import? In that case, it should not have an __init__.py file and it should be on the Python modules search path as @AdamHensley wrote above.
  • Or is pyfiles a Python package containing submodules? In that case unimesh.py should have from . import athena_read instead of import athena_read
In the first case, there are various ways to insert the directory in sys.path. One of them is to add to your site-packages directory a file with the .pth extension containing the path to your directory, for example
# in file mypythondirs.pth
/home/raman/Pictures/MikiForRaman/pyfiles
If you are using your system Python interpreter, you can put that file in the directory printed by the command python -c "import site; print(site.getusersitepackages())". If not, you can store it in one of the directories printed by python -c "import site; print(site.getsitepackages())"