Я пытаюсь переключиться с PyCharm на VS Code для написания кода на Python. Но у меня проблемы с навигацией (особенно Go to definition
) по моему коду.
Моя структура проекта выглядит примерно так:
- my_pkg
setup.py
README.md
- my_pkg
- celery
tasks.py
- foo
main.py
в my_pkg/my_pkg/celery/tasks.py
Мне нужно func_bar
из my_pkg/my_pkg/foo/main.py
. Поэтому я импортирую это так:
from my_pkg.foo.main import func_bar
Go to definition
отлично работает в PyCharm.
Я также устанавливаю my_pkg
локально, как это: cd ~/my_pkg; pip install -e .
Но в VSCode я не могу перейти к определению, если использую этот импорт ^^, вместо этого я должен сделать это одним из следующих способов:
from my_pkg.my_pkg.foo.main import func_bar
или
from ..my_pkg.foo.main import func_bar
Проблема : В этом случае Go to definition
работает, но мой код больше не работает.
Например, в ipython:
from my_pkg.my_pkg.foo.main import func_bar
повышает ModuleNotFoundError: No module named 'my_pkg.mypkg'
Я использую VS Code Version 1.26.1 (1.26.1)
на macOS с python 3.6.4.
Мои настройки рабочего пространства:
{
"python.pythonPath": "${workspaceRoot}/virtual/bin/python",
"python.venvPath": "${workspaceRoot}/virtual",
"python.autoComplete.extraPaths": [
"${workspaceRoot}/virtual/lib/python3.6/site-packages"
],
"python.unitTest.pyTestEnabled": true
}
И он отлично работает для внешних установленных пакетов через pip.