从子文件夹导入Python

2022-03-31 00:00:00 python python-3.x python-import

问题描述

我正在尝试对每个学生单独文件夹中的一些Python提交内容进行评分。为此,有一个我想要运行的函数,比如f()。我明白,如果我的当前路径与文件所在的路径相同,我可以简单地执行

import filename
filename.f()

然而,有没有更好的方法?例如,假设目录结构如下:

main.py
student/run_this.py

我知道,如果学生文件夹中有"__init__.py"文件,我只需键入

import student.run_this

但是,如果没有该文件,它将无法工作。

我发现的一些类似问题

  • 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

但这些答案都不是特别令人满意。


解决方案

在文件夹student内创建__init__.py模块,该模块应包含

from . import *

然后,您可以将学生文件夹中的任何模块调用到其父文件夹模块,作为

import student.module.py

如果您发布了您面临的任何其他错误,我们可以提供进一步帮助。

相关文章