Python-如何使相对导入与Nose兼容

Python-如何使相对导入与Nose兼容,python,python-import,nose,Python,Python Import,Nose,我正在处理一个文件夹结构如下的包: Root |---Source |---Testing |---Test_Utils |---test_fixtures.py |---test_integration.py |---test_unit.py 有大量的相对引用(例如,在test_integration.py中,我需要从源文件夹中的文件导入类,以及从test_Utils文件夹导入测试线束和数据) 到目前为止,我通过使用完整的参考资

我正在处理一个文件夹结构如下的包:

Root
 |---Source
 |---Testing
      |---Test_Utils
            |---test_fixtures.py
      |---test_integration.py
      |---test_unit.py
有大量的相对引用(例如,在test_integration.py中,我需要从源文件夹中的文件导入类,以及从test_Utils文件夹导入测试线束和数据)

到目前为止,我通过使用完整的参考资料来管理这一点,例如:

来自Root.Testing.Test\u Utils.Test\u fixtures import*

在实际尝试运行
nosetests
之前,它似乎工作正常。这是因为nose似乎只在active directory(而不是根工作目录)中找到测试文件,所以在运行
nosetests
之前,我必须
cd Testing
。在这一点上,相关引用与以下内容断开:

ModuleNotFoundError: No module named 'Root'
如何避免这种看似不兼容的情况(不使用pytest,因为我使用的是我认为pytest中不推荐使用的测试生成器(即使用yield))

设置导入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

检查你的
PYTHON\u路径
你能扩展一下吗?我还怀疑这是一个用户级别的变化,当我想要发布这个时,所以我不希望用户在它工作之前必须修改他们的环境变量!