如何在 VS Code 中为自定义模块设置导入?
How do I set up imports for custom modules in VS Code?
我正在尝试将我的 (working/executable) 项目从 PyCharm 转移到 VS Code。我的文件夹结构如下所示(已简化):
root
|- .venv
|- src
|- helper
|- windows
|- main
|- __init__.py
|- main_window.py
|- __init__.py
我正在尝试执行 src/__init__.py 文件,其中包含以下代码:
from PyQt5.QtWidgets import QApplication
from src.windows.main import MainWindow
import sys
if __name__ == '__main__':
app = QApplication(sys.argv)
w = MainWindow()
sys.exit(app.exec_())
这在 PyCharm 中完美运行,但 VS Code 给我以下错误:
ModuleNotFoundError: No module named 'src'
我尝试了很多来自互联网的解决方案(Stack Overflow 和 VS Code 官方文档),包括修改 settings.json 和 launch.json。目前我的 JSON 看起来像这样:
launch.json:
{
"version": "0.2.0",
"configurations": [
{
"name": "Python: Current File",
"type": "python",
"request": "launch",
"program": "${file}",
"console": "integratedTerminal",
"pythonPath": "${config:python.pythonPath}",
"env": {
"PYTHONPATH": "${workspaceFolder}\src"
}
}
]
}
settings.json(用户):
{
"workbench.iconTheme": "Monokai Classic Icons",
"editor.fontSize": 16,
"editor.letterSpacing": 1,
"editor.lineHeight": 27,
"editor.fontFamily": "'Roboto Mono', monospace",
"editor.fontWeight": "300",
"workbench.colorTheme": "Monokai Classic",
"window.zoomLevel": 0,
"terminal.integrated.fontFamily": "'Inconsolata', monospace",
"terminal.integrated.fontSize": 18,
"python.autoComplete.addBrackets": true,
"bracket-pair-colorizer-2.colors": [
"White"
]
}
settings.json(工作区):
{
"python.pythonPath": "c:\Users\username\PycharmProjects\Snake_It_Off\.venv\Scripts\python.exe",
"python.linting.pylintEnabled": false,
"python.linting.enabled": true,
"python.linting.pycodestyleEnabled": true
}
但是,我仍然遇到错误。这是 VS 代码问题吗?在 PyCharm 中,我可以将几个文件夹标记为源(它会自动检测任何包含 __init__.py 的文件夹作为模块)。我该如何正确设置项目才能运行呢?
我终于设法解决了我的问题。我不得不将我的主要可执行文件 src/__init__.py 移到 src 文件夹之外,因为从包 can cause problems 中执行脚本。另一个重要的步骤是通过 运行 以下代码仔细检查我的 PYTHONPATH 是否设置正确:
import sys
print(sys.path)
我正在尝试将我的 (working/executable) 项目从 PyCharm 转移到 VS Code。我的文件夹结构如下所示(已简化):
root
|- .venv
|- src
|- helper
|- windows
|- main
|- __init__.py
|- main_window.py
|- __init__.py
我正在尝试执行 src/__init__.py 文件,其中包含以下代码:
from PyQt5.QtWidgets import QApplication
from src.windows.main import MainWindow
import sys
if __name__ == '__main__':
app = QApplication(sys.argv)
w = MainWindow()
sys.exit(app.exec_())
这在 PyCharm 中完美运行,但 VS Code 给我以下错误:
ModuleNotFoundError: No module named 'src'
我尝试了很多来自互联网的解决方案(Stack Overflow 和 VS Code 官方文档),包括修改 settings.json 和 launch.json。目前我的 JSON 看起来像这样:
launch.json:
{
"version": "0.2.0",
"configurations": [
{
"name": "Python: Current File",
"type": "python",
"request": "launch",
"program": "${file}",
"console": "integratedTerminal",
"pythonPath": "${config:python.pythonPath}",
"env": {
"PYTHONPATH": "${workspaceFolder}\src"
}
}
]
}
settings.json(用户):
{
"workbench.iconTheme": "Monokai Classic Icons",
"editor.fontSize": 16,
"editor.letterSpacing": 1,
"editor.lineHeight": 27,
"editor.fontFamily": "'Roboto Mono', monospace",
"editor.fontWeight": "300",
"workbench.colorTheme": "Monokai Classic",
"window.zoomLevel": 0,
"terminal.integrated.fontFamily": "'Inconsolata', monospace",
"terminal.integrated.fontSize": 18,
"python.autoComplete.addBrackets": true,
"bracket-pair-colorizer-2.colors": [
"White"
]
}
settings.json(工作区):
{
"python.pythonPath": "c:\Users\username\PycharmProjects\Snake_It_Off\.venv\Scripts\python.exe",
"python.linting.pylintEnabled": false,
"python.linting.enabled": true,
"python.linting.pycodestyleEnabled": true
}
但是,我仍然遇到错误。这是 VS 代码问题吗?在 PyCharm 中,我可以将几个文件夹标记为源(它会自动检测任何包含 __init__.py 的文件夹作为模块)。我该如何正确设置项目才能运行呢?
我终于设法解决了我的问题。我不得不将我的主要可执行文件 src/__init__.py 移到 src 文件夹之外,因为从包 can cause problems 中执行脚本。另一个重要的步骤是通过 运行 以下代码仔细检查我的 PYTHONPATH 是否设置正确:
import sys
print(sys.path)