Обширный поиск в 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
Любая помощь будет принята с благодарностью.
from adventure.src import util? :)
import .util Скорее всего.
К сожалению, все они получают ошибку unresolved import.
«неразрешенный импорт» не является ошибкой Python. Что выдает эту ошибку?
в каком файле находится import util?
@AdamSmith Я использую pep8 для анализа, так что либо это, либо VSCode. Однако мои деньги были бы на первом.
@КомронАрипов main.py
попробуйте запустить его как модуль: python3 -m main или, если вы находитесь внутри папки «adventure», как python3 -m src.main
@KomronAripov К сожалению, это не решило проблему.






Я считаю, что происходит то, что VSCode запускает main.py из текущего рабочего каталога, который не является /Projects или каким-либо из его подкаталогов. Поэтому, когда вы пытаетесь import util или from adventure import util, он не может найти файл. Быстрое и простое решение — добавить путь к /src к sys.path:
import sys
sys.path.append('/Projects/adventure/src')
import util
или что там может быть от абсолютный путь до /src. Немного чище может быть добавление вашего каталога /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}
Они были получены из документы визуальной студии. Обратите внимание, что вам, возможно, придется изменить : на ; и / на \\ в Windows.
Это не сработало, к сожалению. Может ли это быть как-то связано с местоположением python.exe? Я установил его в свою папку /Documents, а папка /Projects находится внутри той же папки, что и все установочные файлы (/Python).
@DCoded, на самом деле этого не должно быть. У меня есть еще одна идея, я обновлю свой пост.
@DCoded, просто чтобы быть уверенным, вы написали свой абсолютный путь, используя \\ instead of / с первой попытки, верно? Поскольку вы находитесь в Windows, ваши разделители пути - это двойная обратная косая черта.
@DCoded, не могли бы вы попробовать запустить код в командной строке без использования VSCode, просто чтобы немного сузить его? Откройте cmd, перейдите к своему main.py, запустите Path/To/Python/python.exe main.py и посмотрите, выдает ли он ту же ошибку?
Создание файла .env с указанным PYTHONPATH, кажется, сработало, хотя я не включил :${PYTHONPATH} в конце. Спасибо.
from adventure import util?