我正在对我的代码进行测试,但我面临一个奇怪的导入错误
注:
文件夹结构如下所示:
-app.py
-models
---language.py
---category.py
-my_tests
---unit
------models
---------category_test.py
---------language_test.py
在category_测试中,我使用以下方法导入“category”类:
from models.category import Category
在language_测试中,我使用以下方法导入“language”类:
from models.language import Language
在category_测试用例中,所有操作都正常。
在language_测试用例中,我遇到一个“导入错误”。
它不会像搜索类别测试文件那样在项目的根目录下搜索,而是在“我的测试/单元/模型”文件夹中搜索。
打印sys.path时,结果与预期一致:
[
'/home/ste3/Documents/Projects/SteFunBot/my_tests/unit/models', -> current folder
'/home/ste3/Documents/Projects/SteFunBot', -> PYTHONPATH
'/usr/lib/python38.zip', '/usr/lib/python3.8',
'/usr/lib/python3.8/lib-dynload',
'/home/ste3/Documents/Projects/SteFunBot/venv/lib/python3.8/site-packages'
]
我怎样才能解决这个问题
编辑
我认为这是一个短绒问题。会吗?
如果我试图通过从根目录指定路径(step1)来导入模块,然后从导入路径(step2)中删除根目录,恢复导入,它会起作用:
步骤1
from SteFunBot.models.language import Language
步骤2
from models.language import Language
在其他文件夹中导入模块(文件)时,默认情况下,VSCode从文件的父文件夹开始。因此,我们可以通过以下方式帮助VSCode找到模块路径:
使用绝对路径。设置VSCode搜索路径的方法是从当前项目开始。VSCode在执行代码之前首先更改项目文件夹路径
例如:使用
在“
launch.json
”中添加项目的绝对路径:使用相对路径。根据文件的相对路径(使用导入的模块文件)查找项目路径,然后VSCode将从项目文件夹开始搜索
例如:在文件开头使用以下代码查找项目文件夹路径:
相关问题 更多 >
编程相关推荐