mba*_*i23 8 python visual-studio-code
我正在尝试使用 VSCode 调试我的 python 应用程序。但我无法正确配置我的环境。尝试将类从源路径中的一个文件夹导入到另一个文件夹时,会出现以下消息:
Traceback (most recent call last):
File "/Users/mb/Library/source/sandbox/lib/lib.py", line 1, in <module>
from app.main import MyClass
ModuleNotFoundError: No module named 'app'
Run Code Online (Sandbox Code Playgroud)
我创建了一个简单的应用程序来展示该问题。我的源路径如下所示:
sandbox
+-- .vscode
--- launch.json
+-- app
--- __init__.py
--- main.py
+-- lib
-- lib.py
Run Code Online (Sandbox Code Playgroud)
Traceback (most recent call last):
File "/Users/mb/Library/source/sandbox/lib/lib.py", line 1, in <module>
from app.main import MyClass
ModuleNotFoundError: No module named 'app'
Run Code Online (Sandbox Code Playgroud)
sandbox
+-- .vscode
--- launch.json
+-- app
--- __init__.py
--- main.py
+-- lib
-- lib.py
Run Code Online (Sandbox Code Playgroud)
尝试lib.py使用默认配置来运行当前文件,我收到上面的错误消息。
另外,我创建了一个.vscode/launch.json来设置工作目录,但无济于事。这是我的launch.json:
# main.py
class MyClass:
def __init__(self):
print('Creating object...')
def print_message(self, message):
print(message)
Run Code Online (Sandbox Code Playgroud)
我确信,我错过了一个简单的设置,但我无法指出它。
笔记
"env": {"PYTHONPATH": "${workspaceFolder}"},launch.json但这没有任何作用。${workspaceFolder}变量,并且输出被\从路径中删除,就好像它们没有被转义一样。这是任务.vscode/tasks.json:# lib.py
from app.main import MyClass
myclass = MyClass()
myclass.print_message('hello, world!')
Run Code Online (Sandbox Code Playgroud)
这是从中得到的输出:
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "Python: Current File",
"type": "python",
"request": "launch",
"program": "${file}",
"console": "integratedTerminal",
"cwd": "${workspaceFolder}"
},
{
"name": "Python: Module",
"type": "python",
"request": "launch",
"module": "main"
}
]
}
Run Code Online (Sandbox Code Playgroud)
让我尽力帮助您。当您想导入不在当前目录中的文件时,请这样做。
from . import main
Run Code Online (Sandbox Code Playgroud)
对于第二个问题,请访问此链接