- Сервер отладки pydev показывает неприменимую ошибку.
- Отладчик pydev: невозможно найти перевод для: (пожалуйста, измените сопоставления путей)
- https://stackoverflow.com/a/41765551/1497139
Моя среда IDE — Eclipse 2025-12 на Mac OS с LiClipse и pydev 13.0.1.202502081502.
Удаленная отладка работает нормально, если моя целевая машина использует не Venv и даже с Venv
если я играю с сопоставлением путей, например. с целью Ubuntu 22 и Python 3.10/3.11
Для меня все становится неуправляемым, когда целью является Ubuntu 24 LTS. У меня есть Python 3.12, который заставляет меня использовать venv.
Когда я это делаю, записи PYTHONPATH больше не являются прямыми.
Я пытаюсь смягчить это с помощью установки Python -e.
Затем я начинаю отладчик с удаленным туннелем
ssh -R 5678:localhost:5678 ubuntu ". .profile;bin/debug_cms"
с использованием кода запуска из
https://github.com/WolfgangFahl/pybasem ... ase_cmd.py
и сопоставления
--debugRemotePath /Users/wf/py-workspace/,/Users/wf/Library/Python/3.12/lib/python/site-packages/basemkit/ \
--debugLocalPath /home/wf/source/python/,/home/wf/source/python/pybasemkit
В итоге у меня получается
pydev debugger: Trying to add breakpoint to file that does not exist: /Users/wf/Library/Python/3.12/lib/python/site-packages/basemkit/base_cmd.py (will have no effect).
Сообщение вводит в заблуждение: файл действительно существует на стороне IDE.
если я изменю сопоставление путей на более простое
--debugRemotePath /Users/wf/py-workspace/ \
--debugLocalPath /home/wf/source/python
В итоге у меня получается:
➜ starting python -X frozen_modules=off -m frontend.cmsmain --serve --host 0.0.0.0
Local=qn.bitplan.com
Remote=127.0.0.1
DEBUG: I am running in: /home/wf/source/python/pyWikiCMS
DEBUG: This file is at: /home/wf/source/python/pybasemkit/basemkit/base_cmd.py
DEBUG PATH MAP: Remote (IDE)='/Users/wf/py-workspace/' Local='/home/wf/source/python'
1.07s - pydev debugger: unable to find translation for: "/Users/wf/Library/Python/3.12/lib/python/site-packages/basemkit/base_cmd.py" in ["/Users/wf/py-workspace/", "/Users/wf/py-workspace"] (please revise your path mappings).
что также является странным сообщением, учитывая то, что говорится в выводе отладки.
сопоставление на основе Json
[
{
"localRoot": "...",
"remoteRoot": "..."
}
]
кажется контрпродуктивным, поскольку он не может адаптироваться к разным целевым машинам и, похоже, мешает другим сопоставлениям путей.
К сожалению, это преследует меня с 2011 года https://stackoverflow.com/a/41765551/1497139
и даже 14 лет спустя я все еще в замешательстве и не понимаю, как сопоставление должно работать правильно. У меня он работал несколько лет, и я был рад скрыть сложность, и теперь он снова в самом разгаре.
Что можно сделать, чтобы проекты на основе venv отображались правильно?
Для отладки я использую
export PYDEVD_DEBUG=1
export DEBUG_PYDEVD_PATHS_TRANSLATION=1
export PYDEVD_LOG_DIR=/tmp/pydevd
и попытайтесь понять исходный код по адресу base_cmd
if args.debugServer:
import pydevd
import pydevd_file_utils
remote_path = args.debugRemotePath
local_path = args.debugLocalPath
# note the complexity of https://stackoverflow.com/a/41765551/1497139
# discussed in 2011
if remote_path and local_path:
remotes = [r.strip() for r in remote_path.split(",")]
locals_ = [l.strip() for l in local_path.split(",")]
if len(remotes) != len(locals_):
raise ValueError("debugRemotePath and debugLocalPath must have the same number of entries")
mappings = list(zip(remotes, locals_))
if args.debug:
fqdn = socket.getfqdn()
print(f"Local={fqdn}",file=sys.stderr)
print(f"Remote={args.debugServer}",file=sys.stderr)
print(f"DEBUG: I am running in: {os.getcwd()}",file=sys.stderr)
print(f"DEBUG: This file is at: {os.path.abspath(__file__)}",file=sys.stderr)
for r, l in mappings:
marker="
print(f"DEBUG PATH MAP: Remote (IDE)='{r}' Local='{l}' {marker}", file=sys.stderr)
# https://github.com/fabioz/PyDev.Debugge ... e_utils.py
pydevd_file_utils.setup_client_server_paths(mappings)
pydevd.settrace(
args.debugServer,
port=args.debugPort,
stdoutToServer=True,
stderrToServer=True,
suspend=True
)
print("Remote debugger attached.")
Подробнее здесь: https://stackoverflow.com/questions/798 ... irtual-env
Мобильная версия