LINUX.ORG.RU

Проблема с дебаггингом emacs + elpy

 , ,


0

1

Привет.

Итак, установленная система: debian12

Конфигурация elpy:

Emacs.............: 28.2
Elpy..............: 1.35.0
Virtualenv........: rpc-venv (/home/evgeny/.emacs.d/elpy/rpc-venv/)
Interactive Python: python3 3.11.2 (/home/evgeny/.emacs.d/elpy/rpc-venv/bin/python3)
RPC virtualenv....: rpc-venv (/home/evgeny/.emacs.d/elpy/rpc-venv)
 Python...........: python3 3.11.2 (/home/evgeny/.emacs.d/elpy/rpc-venv/bin/python3)
 Jedi.............: 0.19.1
 Autopep8.........: 2.0.4
 Yapf.............: 0.40.2
 Black............: 24.2.0
Syntax checker....: flake8 (/home/evgeny/.emacs.d/elpy/rpc-venv/bin/flake8)
Работаем с простым скриптом:
a = 5
b = 6
c = 7

Запускаем дебаггер и получаем выхлоп:

Traceback (most recent call last):
  File "<string>", line 19, in __PYTHON_EL_eval
  File "/home/evgeny/temp/forwork.py", line 1, in <module>
    a = 5
    ^^^^^^
AttributeError: 'Pdb' object has no attribute '_runscript'

А если установить breakpoint на любую строку, то выдает:

Traceback (most recent call last):
  File "<string>", line 17, in __PYTHON_EL_eval
  File "/home/evgeny/temp/forwork.py", line 1
    a = 5
    ^^^^^^
SyntaxError: 'continue' not properly in loop

Что с этим делать? Заранее спасибо.

Ответ на: комментарий от anonymous

К сожалению, в репозиториях debian 11 и 12 пакета elpa-elpy нет.

Тема раскрыта здесь: https://githubissues.com/jorgenschaefer/elpy/1999

На другой машине с debian 11 подцепил репозиторий от buster и этот пакет установил. (elpy-enable) добавил в конфиг. Дополнительные пакеты из мануала поставил тоже. По итогу теперь в имаксовом меню elpy отсутствует debugging. И на C-c C-u d ноль эмоций. Попробую еще с этим повозиться.

Но все-таки, почему elpy, установленная из melpa дает такое поведение? Может, кто-то сталкивался?

Да, забыл добавить: в .emacs прописано следующее:

(use-package elpy
  :ensure t
  :init
  (elpy-enable))
(require 'auto-virtualenv)
(add-hook 'python-mode-hook 'auto-virtualenv-set-virtualenv)
asperus113
() автор топика
Ответ на: комментарий от asperus113

я думал, что этого будет достаточно, прости, ошибся. Тогда я опишу, что и как. Первое, ставим пакет из melpa. Прошлый удаляем. Дальше мы ставим зависимости, на которые вроде и ругается твой elpy. Я их и пытался тебе показать.

sudo apt install python3-jedi black python3-autopep8 yapf3 python3-yapf

Ну и на закуску, этот подход устарел! https://www.youtube.com/watch?v=SbTzIt6rISg
https://www.youtube.com/watch?v=eg30biitBFI

Если ты пользуешься Debian 12, открою тебе тайну, в backports есть emacs 29. 28 версия и 29 - как небо и земля.

anonymous
()
Ответ на: комментарий от anonymous

В общем, поэкспериментировал на трех компах.

Снес папку ~/.emacs.d/elpa

Далее, установил use-package. И больше никакой активности.

elpy подтянулся сам.

Везде идентичные .emacs. То, что там относится к elpy - в посте выше.

На debian 11 и соответственно emacs27.1 и python3.9.2, а также на mint 21.2 c emacs27.1 и python3.10.12 все работает.

На bookworm, где emacs 28.2 и python3.11.2 - те же ошибки, что и раньше.

Ну и на закуску, этот подход устарел!

Спасибо за ссылки. Но все же на данный момент хотелось бы понять, как справиться с тем, что есть.

asperus113
() автор топика
Ответ на: комментарий от asperus113

Присоединяюсь к анониму. Рекомендую поставить 29 версию и подключить lsp и company. Я не проф. разработчик, использовал elpy около года, после lsp+eglot+company. Последняя связка показалась шустрее и полезнее. В elpy хватает разных багов. Особенно доставляли зависания из-за незакрытых одинарных ковычек и escape последовательностей в некоторых участках кода.

curbar
()