Как настроить импорт для пользовательских модулей в VS Code? - PullRequest
0 голосов
/ 18 октября 2019

Я пытаюсь перенести мой (рабочий / исполняемый) проект из 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 в качестве модуля). Как правильно настроить проект, чтобы можно было его запустить?

1 Ответ

1 голос
/ 18 октября 2019

Мне наконец удалось решить мою проблему. Мне пришлось переместить мой основной исполняемый файл, src / __ init__.py, за пределы папки src, поскольку выполнение сценария из пакета может вызвать проблемы . Другим важным шагом была двойная проверка, что мой PYTHONPATH установлен правильно, запустив следующий код:

import sys

print(sys.path)
...