Python 从子文件夹导入模块
我正在尝试给一些学生提交的Python作业打分,这些作业都放在各自的文件夹里。为了做到这一点,我有一个函数,比如说叫f(),我想运行它。我知道如果我当前的路径和文件所在的路径是一样的,我可以直接这样做:
import filename
filename.f()
但是,有没有更好的方法呢?比如说,假设文件夹结构是这样的:
main.py
student/run_this.py
我知道如果学生文件夹里有一个"__init__.py"文件,我可以直接输入:
import student.run_this
但是,如果没有这个文件,就不行了。
我找到了一些类似的问题:
- 从子文件夹导入模块
- 如何在Python中进行相对导入?
- http://www.daniweb.com/software-development/python/threads/192000/import-from-a-subdirectory-of-a-directory-on-pythonpath
但这些问题都没有给出特别令人满意的答案。
1 个回答
11
在名为 student
的文件夹里创建一个 __init__.py
文件,这个文件应该包含以下内容:
from . import *
这样你就可以从 student
文件夹里调用任何模块到它的上级文件夹的模块,方法是:
import student.module.py
如果你遇到其他错误,可以把错误信息发出来,我们可以进一步帮助你。