#python-3.x #python-3.6 #pylance
#python-3.x #python-3.6 #pylance
Вопрос:
Окружающая среда:
- Python 3.6.9
- VSCode
- Pylance
Структура моего рабочего пространства в VSCode:
.../sync
├── README.rm
├── script-program-1
│ ├── lib
│ │ ├── __init__.py
│ │ └── queries.py
│ └── sync.py
├── lib
│ ├── __init__.py
│ ├── config.yaml
│ ├── logging.yaml
│ └── sync_config.py
└── requirements.txt
Я добавил "python.analysis.extraPaths": ["./lib"]
в settings.json, расположенный в sync .vscode .
Проблема в том, что в sync.py сценарий У меня возникли проблемы с импортом lib.queries. Если я попытаюсь from .lib.queries import *
, pylance не жалуется, но выдает ошибку attempted relative import with no known parent package
Если я вместо этого использую from lib.queries import *
python3, работает по назначению, но pylance жалуется, говоря Import "lib.queries" could not be resolved(PylancereportMissingImports)
Что я могу изменить, чтобы импорт работал, И у pylance не было проблем с ним?
Обновление Если я добавлю ./script-program-1 в settings.json python.analysis.extraPaths, проблема исчезнет. Проблема, с которой я сталкиваюсь, заключается в том, что в этом проекте могут быть сотни папок «script-program-X», и все они могут иметь свои собственные локальные файлы импорта. Обновление этой переменной extraPaths для каждого из них на любой машине VSCode, с которой я работаю, не идеально.
Я пытался использовать переменную типа «./ $ {relativeFileDirname}», а также подстановочные знаки типа «./ **» и «./*но ни один из них не работает.
Я знаю, что проблема вызвана тем, что корнем рабочей области является папка синхронизации, а не script-program-1, но я хочу, чтобы она была настроена именно так. У кого-нибудь есть решение для этого?
Комментарии:
1. Похоже, что переключение на Jedi для проекта должно сработать, или вам придется создать несколько корней для всех каталогов