【发布时间】:2016-07-15 21:13:57
【问题描述】:
这似乎是一个简单的问题,但我还没有找到解释我所看到的行为的答案。很难提供一个简单的复制案例,但我基本上有一个这样的包结构:
a.b.c
a.b.utils
我有一个项目在a.b.c. 中有文件(我们称之为aux_project),另一个项目在a.b.d、a.b.utils 等中有文件(称之为main_project)。我正在尝试使用tests_require 在第一个项目的pytest 测试中导入a.b.utils。这不起作用,因为 a.b 出于某种原因来自 aux_project/a/b/__init__.pyc 而不是 virtualenv 内部,它会影响其他包(即,这个 a.b 里面只有一个 c,而不是 d 或 @987654335 @)。这只发生在测试环境中。在 ipython 中,我可以很好地加载所有包,并且它们是从 virtualenv 正确加载的。
更奇怪的是,如果我只是删除实际目录,测试确实会从 virtualenv 加载 pycs 并且一切正常(不过我需要那个目录)
python==2.7.9
发生了什么事?
【问题讨论】:
-
我应该补充一点,没有明确设置 PYTHONPATH,并且 ipython 和测试都在同一个 venv 中运行
标签: python pytest python-module