1

我喜欢将我的源代码与测试代码分开。所以,我的项目是这样组织的:

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语句来找到正确的文件
4

1 回答 1

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()

于 2013-08-04T12:17:11.507 回答