Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Python imports from subfolders

I am attempting to grade some python submissions that are in separate folders for each student. To do this, there is a function, say f() which I want to run. I understand that if my current path is the same as the one where the file is located, I can simply do

import filename
filename.f()

However, are there better ways? For instance, let's say the directory structure is as follows:

main.py
student/run_this.py

I know that if there is a "__init__.py" file in the student folder, I can just type

import student.run_this

However, without that file, it doesn't work.

Some similar questions I found were

  • Import module from subfolder
  • How to do relative imports in Python?
  • http://www.daniweb.com/software-development/python/threads/192000/import-from-a-subdirectory-of-a-directory-on-pythonpath

but none of these gave particularly satisfying answers.

like image 633
Viknesh Avatar asked Mar 05 '13 11:03

Viknesh


1 Answers

create an __init__.py module inside the folder student which should contain

from . import *

You can then call any modules from student folder to its parent folder modules as

import student.module.py

If you post any other errors you are facing, we can help further.

like image 177
Mathan Kumar Avatar answered Nov 14 '22 19:11

Mathan Kumar