我正在处理一个具有如下文件夹结构的软件包:
Root
|---Source
|---Testing
|---Test_Utils
|---test_fixtures.py
|---test_integration.py
|---test_unit.py
有大量的相对引用(例如,在test_integration.py中,我需要从Source文件夹中的文件中导入类,并从Test_Utils文件夹中导入测试工具和数据。
到目前为止,我已经通过使用完整的引用来管理此问题,例如:
from Root.Testing.Test_Utils.test_fixtures import *
在实际尝试运行nosetests
之前,这似乎可以正常工作。这是因为鼻子似乎只能在活动目录(而不是根工作目录)中找到测试文件,所以我必须在运行cd Testing
之前nosetests
。 / p>
ModuleNotFoundError: No module named 'Root'
我如何解决这种看似不兼容的问题(不使用pytest,因为我使用的是我认为在pytest中已弃用的测试生成器(即使用yield))?
答案 0 :(得分:0)
PYTHONPATH设置导入python模块的搜索路径。
如果您正在使用(Mac或GNU / Linux发行版),请将其添加到~/.bashrc
中。
# add this line to ~/.bashrc
export PYTHONPATH=PYTHONPATH:/path/to/folder # path where is your Root folder
# after this we need to reload ~/.bashrc
$ source ~/.bashrc
# if source ~/.bashrc don't work simple restart your terminal
# after this we can echo out our PYTHONPATH environment variable to check if it was added successfully
$ echo PYTHONPATH
# it need to output your folder