Неразрешенный импорт 'util' - PullRequest
0 голосов
/ 15 марта 2019

Широкий поиск в Google, Reddit и на этом сайте оказался бесплодным, так что, надеюсь, кто-то здесь может мне помочь. Код

import util

выдает ошибку unresolved import 'util'. util.py - это модуль в той же папке. Для справки, вот моя иерархия:

\Projects
    |-\adventure
        |-\src
            |-__init__.py
            |-main.py
            |-util.py

и это информация моего VSCode:

Version: 1.32.2 (user setup)
Commit: e64cb27b1a0cbbc3f643c9fc6c7d93d6c6509951
Date: 2019-03-13T02:00:46.035Z
Electron: 3.1.6
Chrome: 66.0.3359.181
Node.js: 10.2.0
V8: 6.6.346.32
OS: Windows_NT x64 10.0.17134

Любая помощь будет принята с благодарностью.

1 Ответ

1 голос
/ 15 марта 2019

Я считаю, что происходит то, что VSCode запускает main.py из текущего рабочего каталога, который не является /Projects или любым из его подкаталогов. Поэтому, когда вы пытаетесь import util или from adventure import util, он не может найти файл. Быстрое и простое решение - добавить путь к /src к sys.path:

import sys
sys.path.append('/Projects/adventure/src')
import util

или каков может быть абсолютный путь от 1011 * до /src. Немного чище может быть добавление каталога /Projects и его импорт из приключений, чтобы вам не приходилось добавлять дополнительные каталоги, если вы хотите включить модули из других пакетов в папку Projects.

import sys
sys.path.append('/Projects') # whatever the absolute path to /Projects is
from adventure import util

Другая возможность заключается в обновлении файла конфигурации VSCode, чтобы указать измененную переменную среды PYTHONPATH, чтобы указать путь для импорта проекта. Вы можете включить в launch.json в вашей конфигурации следующее:

"env": {
    "PYTHONPATH": "/path/to/src/:${PYTHONPATH}"
}

или создайте файл .env, чтобы указать то же самое:

PYTHONPATH=/path/to/src/:${PYTHONPATH}

Они были получены из visualstudio docs . Обратите внимание, что вам может потребоваться изменить : на ; и / на \\ в Windows.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...