我喜欢将源代码与测试代码分开。所以,我的项目组织如下:
my_package/
module1.py
module2.py
tests/
units/
test_a.py
test_b.py
perf_tests.py
test_a.py
应如何导入my_package
?
注意:我已经使用Google搜索(包括SO)并且对答案不满意:
sys.path.append('../')
和sys.path.append(os.path.realpath('../'))
。两者都会产生ImportError: No module named my_package
。也许类似的事情可以通过PYTHONPATH
完成 - 语法是什么?import
语句答案 0 :(得分:0)
首先,您必须在文件夹__init__.py
中包含my_package
文件,以便允许Python将此文件夹识别为有效模块。例如,您可以使用一行__init__.py
创建一个空的pass
文件。
然后,您可以在test_a.py
中执行以下操作:
import os
bkp = os.getcwd()
os.chdir(r'..\..')
import my_package
os.chdir(bkp)
或者使用PYTHONPATH
或sys.path.append()
的其他选项。