[英]VS Code and Python import - relative/absolute path problem
我知道,已经有讨论此主题的线程打开,但到目前为止没有帮助。
我在 VS Code 中的项目如下所示:
/myproject
main.py
/sub1
__init__.py
sub1_mod1.py
/sub1_1
__init__.py
sub1_1_mod1.py
/sub1_2
__init__.py
sub1_2_mod1.py
/sub2
__init__.py
sub1_mod1.py
/sub2_1
__init__.py
sub2_1_mod1.py
/sub2_2
__init__.py
sub2_2_mod1.py
在 VS Code 中,/myproject 的路径是... ofc ... 设置为项目。
代码像
# main.py absolute imports
from sub1 import sub1_mod1 as sub1_mod1
from sub1.sub1_1 import sub1_1_mod1 as sub1_1_mod1
if __name__ == "__main__":
sub1_mod1.sub1_mod1_def1()
sub1_1_mod1.sub1_1_mod1_def1()
奇迹般有效。 但我想要的是:包之间的导入:例如 import /sub1/sub1_mod1.py in /sub2/sub2_mod.py 。 我正在使用这段代码:
# sub2_mod1.py
import sub1.sub1_mod1 as sub1_mod1
if __name__ == "__main__":
sub1_mod1.sub1_mod1_def1()
VS Code 没有显示任何错误,自动完成所有内容(例如,当键入 sub1_mod1 时。...我获得了所有功能并且可以 select sub1_mod1_def1())。 但是当我运行代码时,我得到ModuleNotFoundError: No module named 'sub1'
我还尝试使用所有 VS Code/Pylance 选项:
"python.analysis.importFormat": "relative"
- - - - - - - - - - - - OR - - - - - - - - - - - -
"python.analysis.importFormat": "absolute"
...
"python.analysis.autoImportCompletions": true
- - - - - - - - - - - - OR - - - - - - - - - - - -
"python.analysis.autoImportCompletions": false
...
"python.analysis.extraPaths": [
"/sub1",
"/sub2",
"/sub1/sub1_1",
"/sub1/sub1_2",
"/sub2/sub2_1",
"/sub2/sub2_2"
]
- - - - - - - - - - - - OR - - - - - - - - - - - -
"python.analysis.extraPaths": []
所有选项都没有改变任何事情。
TL;DNR:深入(当前)路径是没有问题的。 但是,朝另一个方向前进是行不通的。 关于如何设置的任何线索? 哦,我更喜欢没有导入操作系统的解决方案并保持“本地”。
我创建了类似的目录结构,但遇到了同样的问题。
通常,当前文件夹的默认设置是项目文件夹(我们可以搜索“Terminal: Execute In File Dir”,发现没有勾选)。
但是,即使文件目录正确,它仍然会给出错误 moduleNotFound。 我将问题提交给github 。
这是一个临时解决方案,我们可以使用code-runner扩展并使用Run Code来运行 python 文件:
正常运行的代码运行器让我认为这是一个错误。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.