VS Code (Remote + Docker) Перейти к определению переходит к установке ROS2/пакетам Python вместо src/Python

Программы на Python
Ответить
Anonymous
 VS Code (Remote + Docker) Перейти к определению переходит к установке ROS2/пакетам Python вместо src/

Сообщение Anonymous »

Я использую удаленный проводник vscode для подключения к удаленному компьютеру (SSH) в Docker-контейнер. Этот удаленный компьютер будет автономным роботом, который будет запускать соответствующий код. Я делаю это таким образом, потому что мне нравится моя среда интерпретатора Python vscode так же, как и моя реальная рабочая среда. Таким образом, отладка, Ctrl+щелчок, описания при наведении курсора мыши и т. д. работают хорошо. Мне нравится, что то, что я вижу, идентично тому, что работает на самом деле.
Однако теперь это работает против меня. ROS2 автоматически генерирует копии моего кода Python (расположенные по адресу ros2_ws/src) и помещает их в новый сгенерированный каталог (ros2_ws/install/...). Поскольку мой PYTHONPATH содержит этот каталог .../install/... (см. ниже), Перейти к определению моего интерпретатора Python vscode переходит в этот каталог установки, а не в исходный код. Это раздражает, потому что иногда я вношу изменения, которые впоследствии удаляются при сборке colcon. Это также делает представление файла на боковой панели огромным и затрудняет навигацию. Это выбивает меня из моего потока, и это должно (?) исправить.
Можно ли как-нибудь решить эту проблему? Приведенное ниже не помогло (между попытками я всегда нажимаю Ctrl+Shift+P, затем Разработчик: перезагрузить окно, перезапустить языковой сервер по какой-то причине не работает).
Что не сработало

Код: Выделить всё

{
...
"python.analysis.extraPaths": [
"/home/dev/ros2_ws/src"
],
"python.analysis.autoSearchPaths": false,
"python.analysis.exclude": [
"${workspaceFolder}/install"
],
"editor.gotoLocation.multipleDefinitions": "peek",
"editor.gotoLocation.multipleImplementations": "peek"
}
А также добавление файла .env и его включение в settings.json

Код: Выделить всё

{
...
"python.envFile": "${workspaceFolder}/.vscode/.env"
}
Создание с помощью символической ссылки

Код: Выделить всё

colcon build --symlink-install
Мой PYTHONPATH:

Код: Выделить всё

python3 -c "import sys; print('\n'.join(sys.path))" | sed -n '1,120p'
дает:

Код: Выделить всё

/home/dev/ros2_ws/install/somethingsomething_navigation/local/lib/python3.10/dist-packages
/home/dev/ros2_ws/install/somethingsomething_main/local/lib/python3.10/dist-packages
/home/dev/ros2_ws/install/somethingsomething_interfaces/local/lib/python3.10/dist-packages
/opt/ros/humble/lib/python3.10/site-packages
/opt/ros/humble/local/lib/python3.10/dist-packages
/usr/lib/python310.zip
/usr/lib/python3.10
/usr/lib/python3.10/lib-dynload
/home/dev/.local/lib/python3.10/site-packages
/usr/local/lib/python3.10/dist-packages
/usr/lib/python3/dist-packages
Больше о моей среде
Выполнение следующих действий в терминале ROS2

Код: Выделить всё

which python3
>> /usr/bin/python3
Мой интерпретатор Python для vscode — /usr/bin/python3
Мой образ докера основан на Ubuntu 22.04

Мой ноутбук — Ubuntu 24.04

Моя версия Python для докера — Python 3.10.12
Расширения Vscode на удаленном компьютере:

Pylance

Python

Отладчик Python

Среды Python
Расширения Vscode локально:

Контейнеры разработки

Удаленно — SSH

Удаленно — SSH: редактирование файлов конфигурации

Удаленно — Туннели

Удаленная разработка

Удаленный обозреватель

Pylance

Python

Отладчик Python

Среды Python

Подробнее здесь: https://stackoverflow.com/questions/798 ... on-package
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»