我有一个多目录项目。我为每个目录使用绝对导入。例如,
main_dir | | - sub_dir1 | | - a.py (has say class A) | - sub_dir2 | | - b.py (imports class A. Syntax: from subdir1.a import A)
当我在终端上从main_dir运行它时,它运行正常。 但是,此导入为我提供了VS代码中的“未解决的导入'differential_diagnosis.src.algorithm'Python(unresolved-import)”。我不知道该如何解决。
因此,我面临的最大挑战是我无法使用peek功能查看A类的成员函数的作用。
我在GitHub Project上也提出了类似的要求。
答案 0 :(得分:0)
您应该放置一些您想做的代码。我可以说的是,Python在导入搜索路径中查找模块。首先,它查找内置模块,Python查找sys.path变量,该变量由原始脚本的目录+ PATH shell变量+一些依赖于安装的默认值初始化。
请参阅:https://docs.python.org/3/tutorial/modules.html
为确保可以找到您的进口货,您可以执行以下操作:
sys.path.append(pathname_to_module)
在导入模块之前。
答案 1 :(得分:0)
尝试在您的python文件中添加以下代码:
import sys
print(sys.path)
解释器只能搜索这些路径以找到模块。 Python只会自动将包含当前python文件的文件夹添加到“ sys.path”。
'不应在'sys.path'中找到'sub_dir1'的路径。您需要将这些设置添加到launch.json文件中
"env": {
"PYTHONPATH": "${workspaceFolder}"
},
然后,您的工作空间路径将添加到“ sys.path”。如果“ main_dir”是工作空间文件夹,则可以将“从subdir1.a import A”更改为“ form main_dir.subdir1.a import A”。如果不是,则应将其从“ {workspaceName}。{folder} .... main_dir.subdir1 import A”更改为“ A”,并且应在每个文件夹中添加“ init .py”文件以进行更改文件夹到python包。