我的目录结构如下:
project/
README.md
project/
foobar/
foo.py
tests/
test_foo.py
test_foo
只是from foobar import foo
,当我从py.test
子目录运行python3 tests/test_foo.py
或仅运行project
时,会出现No module named foobar
错误。我在这里尝试了其他答案,例如使用相对导入将..
添加到sys.path
,没有任何工作,除了在python3 test_foo.py
中使用tests
运行sys.path.append('..')
时。 / p>
答案 0 :(得分:0)
首先从您的项目中制作一个软件包,然后安装它。
如果已安装,则可以简单地使用以软件包名称开头的绝对链接:
from project import foobar
from project.foobar import foo
另一种方法-使用包内链接(无需对sys.path
进行修改):
test_foo.py
from .. import foobar
答案 1 :(得分:0)
def test():
print("test")
import os
import sys
runPath = os.path.dirname(os.path.realpath(__file__))
sys.path.append(os.path.join(runPath, ".."))
from foobar import foo
foo.test()
test