【发布时间】:2013-07-31 18:55:51
【问题描述】:
我喜欢将我的源代码与测试代码分开。所以,我的项目是这样组织的:
my_package/
module1.py
module2.py
tests/
units/
test_a.py
test_b.py
perf_tests.py
test_a.py应该如何导入my_package?
注意:我已经用谷歌搜索过这个(包括 SO)并且对答案不满意:
- 我不想使用 setup.py,因为我想从开发中运行;毕竟这是为了测试
- 我不想使用符号链接或其他黑客手段
- 我试过
sys.path.append('../')和sys.path.append(os.path.realpath('../'))。两者都导致ImportError: No module named my_package。也许可以用PYTHONPATH做类似的事情 - 语法是什么? - 我确实想写一个正确的
import语句,它可以找到正确的文件
【问题讨论】:
-
“我应该如何加载源代码”是什么意思?你是说进口东西吗?您想从哪个模块导入哪个模块? ...什么是“适当的包含”? ...python中没有“包含”。
-
为什么不直接使用 PYTHONPATH 环境变量呢?这就是它的用途......
-
@Gerrat - 谢谢,重写问题以解决您的问题。
-
@Joran - 我不知道该怎么做:我试过使用 sys.path 也不能让它工作
-
你在 tests/units 目录中吗?试试 sys.path.append(os.path.abspath('../..'))。
标签: python unit-testing python-2.7