17

我仍然对import这份声明有所了解。如果我在同一级别有 2 个文件夹:

  1. 源代码
  2. 测试

如何使py文件中的test导入模块src?有没有更好的解决方案(比如将一个文件夹放在另一个文件夹中?)

4

3 回答 3

10

您想要的代码用于使用 src/module_name.py

from src import module_name 

并且根目录在您的 PYTHONPATH 上,例如您从根目录运行

您的目录结构是我使用的,但模型名称来自 src。我从J Calderone 的博客中得到了这个结构

于 2010-02-14T20:12:52.963 回答
6

试试这个:

import sys
import os
sys.path.append(os.path.join('..', 'src'))
import module_in_src_folder

编辑以支持任何平台

于 2010-02-14T21:29:22.790 回答
0

对于我编写的所有 python 项目,我的情况与 OP 完全相同:

  • 项目文件夹
    1. 源代码
    2. 测试

所有模块,无论是在 src 中,还是在 test 中,或者这些模块的子文件夹中,总是使用importMark 在他的回答中显示的形式:

from src import module_name

我所做的是编写一个模块,它位于Project Folder并递归地发现测试文件夹中的所有测试模块,并让 unittest 运行所有这些测试。当 python 在 中运行时Project Folder,模块是相对于工作目录的。

这意味着测试就像任何其他想要从src.

于 2010-02-14T21:34:37.193 回答